An inner join returns only the rows that have matching keys in both DataFrames. It is like finding common friends between two groups.
Click to reveal answer
beginner
Explain a left outer join in simple terms.
A left outer join returns all rows from the left DataFrame and the matching rows from the right DataFrame. If there is no match, the right side will have null values.
Click to reveal answer
beginner
What does a right outer join do?
A right outer join returns all rows from the right DataFrame and the matching rows from the left DataFrame. If no match exists, the left side will have null values.
Click to reveal answer
beginner
Describe a full outer join.
A full outer join returns all rows from both DataFrames. When there is no match, the missing side will have null values. It combines left and right joins.
Click to reveal answer
intermediate
What is the difference between inner join and full outer join?
Inner join returns only matching rows from both DataFrames. Full outer join returns all rows from both DataFrames, filling nulls where there is no match.
Click to reveal answer
Which join returns only rows with matching keys in both DataFrames?
AFull outer join
BLeft outer join
CRight outer join
DInner join
✗ Incorrect
Inner join returns only rows where keys match in both DataFrames.
In a left outer join, what happens if a row in the left DataFrame has no match in the right DataFrame?
AThe row appears with nulls for right DataFrame columns
BThe row is dropped
CThe row appears with nulls for left DataFrame columns
DAn error occurs
✗ Incorrect
Left outer join keeps all left rows, filling nulls for unmatched right rows.
Which join returns all rows from the right DataFrame and matching rows from the left?
AInner join
BLeft outer join
CRight outer join
DFull outer join
✗ Incorrect
Right outer join returns all right rows and matches from left.
What does a full outer join return?
AAll rows from both DataFrames, with nulls where no match
BAll rows from left only
CAll rows from right only
DOnly matching rows
✗ Incorrect
Full outer join returns all rows from both sides, filling nulls where no match.
If you want to keep only rows present in both DataFrames, which join do you use?
ARight outer join
BInner join
CLeft outer join
DFull outer join
✗ Incorrect
Inner join keeps only rows with keys in both DataFrames.
Explain the difference between inner join, left outer join, right outer join, and full outer join in Apache Spark.
Think about which side's rows are always kept and how unmatched rows are handled.
You got /4 concepts.
Describe a real-life example where you would use a left outer join versus a full outer join.
Consider situations where you want to keep all from one list or all from both.
You got /3 concepts.
Practice
(1/5)
1. Which type of join in Apache Spark returns only the rows that have matching keys in both DataFrames?
easy
A. Full outer join
B. Inner join
C. Right outer join
D. Left outer join
Solution
Step 1: Understand join types
Inner join returns rows where keys match in both tables only.
Step 2: Compare with other joins
Left, right, and full outer joins include unmatched rows from one or both tables.
Final Answer:
Inner join -> Option B
Quick Check:
Inner join = matching rows only [OK]
Hint: Inner join keeps only matching rows from both tables [OK]
Common Mistakes:
Confusing inner join with left or right join
Thinking full outer join returns only matches
Assuming left join excludes unmatched rows
2. Which of the following is the correct syntax to perform a left outer join between two DataFrames df1 and df2 on column id in Apache Spark?
easy
A. df1.join(df2, df1.id == df2.id, 'inner')
B. df1.join(df2, df1.id == df2.id, 'full')
C. df1.join(df2, df1.id == df2.id, 'right_outer')
D. df1.join(df2, df1.id == df2.id, 'left')
Solution
Step 1: Identify join type keyword
Left outer join uses 'left' as the join type string in Spark.
Step 2: Match syntax format
The syntax is df1.join(df2, condition, 'left').
Final Answer:
df1.join(df2, df1.id == df2.id, 'left') -> Option D
Quick Check:
Left join keyword = 'left' [OK]
Hint: Use 'left' string for left outer join in join() method [OK]
Common Mistakes:
Using 'left_outer' instead of 'left'
Confusing join type strings like 'right_outer' for left join
Omitting join condition or using wrong syntax
3. Given two DataFrames: df1 = spark.createDataFrame([(1, 'A'), (2, 'B')], ['id', 'val1']) df2 = spark.createDataFrame([(2, 'X'), (3, 'Y')], ['id', 'val2']) What will be the result of df1.join(df2, 'id', 'right')?
Hint: Right join keeps all right table rows, fills left with nulls if no match [OK]
Common Mistakes:
Expecting left table rows to appear in right join
Confusing right join with full outer join
Misunderstanding null placement for unmatched rows
4. You wrote this Spark join code: df1.join(df2, df1.id == df2.id, 'full_outerjoin') But it throws an error. What is the likely cause?
medium
A. The join type string should be 'full' instead of 'full_outerjoin'
B. The join condition must use a string column name, not an expression
C. You must use 'outer' instead of 'full_outerjoin' as join type
D. Spark does not support full outer joins
Solution
Step 1: Check valid join type strings in Spark
Spark expects 'full' or 'fullouter' but not 'full_outerjoin'.
Step 2: Identify correct string for full outer join
The correct string is 'full', so 'full_outerjoin' causes error.
Final Answer:
The join type string should be 'full' instead of 'full_outerjoin' -> Option A
Quick Check:
Use 'full' for full outer join [OK]
Hint: Use 'full' not 'full_outerjoin' for full outer join string [OK]
Common Mistakes:
Using 'full_outerjoin' instead of 'full'
Thinking join condition must be string only
Believing Spark lacks full outer join support
5. You have two DataFrames: df1 = spark.createDataFrame([(1, 'A'), (2, 'B'), (4, 'D')], ['id', 'val1']) df2 = spark.createDataFrame([(2, 'X'), (3, 'Y'), (4, 'Z')], ['id', 'val2']) You want a DataFrame that shows all ids from both tables, with values from both, and null where no match exists. Which join should you use and what will be the output?
hard
A. Use left join; output: [(1, 'A', null), (2, 'B', 'X'), (4, 'D', 'Z')]
B. Use inner join; output: [(2, 'B', 'X'), (4, 'D', 'Z')]
C. Use full outer join; output: [(1, 'A', null), (2, 'B', 'X'), (3, null, 'Y'), (4, 'D', 'Z')]
D. Use right join; output: [(2, 'B', 'X'), (3, null, 'Y'), (4, 'D', 'Z')]
Solution
Step 1: Identify join type for all rows from both tables
Full outer join returns all rows from both DataFrames, filling nulls where no match.
Step 2: Match rows and fill nulls
Ids 1 and 3 appear only in one table, so their unmatched columns are null.
Final Answer:
Use full outer join; output: [(1, 'A', null), (2, 'B', 'X'), (3, null, 'Y'), (4, 'D', 'Z')] -> Option C
Quick Check:
Full outer join = all rows, nulls for no match [OK]
Hint: Full outer join keeps all rows from both tables with nulls [OK]
Common Mistakes:
Using inner join and missing unmatched rows
Confusing left or right join with full outer join
Expecting no nulls in full outer join result
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.