Apache spark 从数据框中查找相关行

Apache spark 从数据框中查找相关行,apache-spark,Apache Spark,我有一个数据帧类型(名称、id、部门、部门id): 某些数据输入错误,新ID在何处创建。我在找一份清单 J30 -> [ J30,D02 ] M23 -> [ M23,P04 ] D02 -> [ J30,D02 ] J04 -> [ J04 ] P04 -> [ M23,P04 ] 最终删除重复项 U1 -> [ J30,D02 ] U2 -> [ M23,P04 ] U3 -> [ J04 ] 我拥有的数据集是巨大的,我无法通过spar

我有一个数据帧类型(名称、id、部门、部门id):

某些数据输入错误,新ID在何处创建。我在找一份清单

J30 -> [ J30,D02 ]
M23 -> [ M23,P04 ]
D02 -> [ J30,D02 ]
J04 -> [ J04 ]
P04 -> [ M23,P04 ]
最终删除重复项

U1 -> [ J30,D02 ]  
U2 -> [ M23,P04 ]
U3 -> [ J04 ]

我拥有的数据集是巨大的,我无法通过spark找到任何方法来完成这项工作。任何指针都很好。

假设您的数据帧名为df,并且第一个名称和第二个名称的顺序是数据集中发生的错误,那么可以使用reduceByKey方法将其分组

df.map(row => (row(0).toString.split(" ").toSet, row(1))).
   reduceByKey(Set(_, _)).collect

res41: Array[(scala.collection.immutable.Set[String], Any)] = 
       Array((Set(joyee),J04), (Set(john, doe),Set(J30, D02)), (Set(max, payne),Set(M23, P04)))

非常感谢…-)
df.map(row => (row(0).toString.split(" ").toSet, row(1))).
   reduceByKey(Set(_, _)).collect

res41: Array[(scala.collection.immutable.Set[String], Any)] = 
       Array((Set(joyee),J04), (Set(john, doe),Set(J30, D02)), (Set(max, payne),Set(M23, P04)))