我有两个这样的数据框:
DF1:
id | name
---
1 | abc
2 | xyz
DF2:
id | course
---
1 | c1
1 | c2
1 | c3
2 | c1
2 | c3
当我执行df1和df2的left_outer或内连接时,我希望结果数据帧为:
id | name | course
---
1 | abc | c1
---
2 | xyz | c1
---
当我加入时,对于id 1是c1,c2还是c3并不重要;但我只需要一条记录。
请让我知道如何在火花中实现这一点。
谢谢, 约翰
答案 0 :(得分:3)
如何根据列id
删除所有重复记录,这样只会为每个唯一id
保留一条记录,然后将其与df1
一起加入:
df1.join(df2.dropDuplicates(Seq("id")), Seq("id"), "inner").show
+---+----+------+
| id|name|course|
+---+----+------+
| 1| abc| c1|
| 2| xyz| c1|
+---+----+------+