0

我有一个具有以下格式的数据框。

ID | Value
1  | AAA
2  | XXX
3  | BBB
1  | XXX
2  | CCC
3  | DDD
1  | YYY
2  | DDD
3  | XXX

如何在 ID 中找到交叉点?

1 -> AAA,XXX,YYY
2 -> XXX,CCC,DDD
3 -> BBB,DDD,XXX

Expected result: XXX

非常感谢您!

4

1 回答 1

3

分组Value并检查哪些组具有所有值

val cnt = df.select($"ID").distinct().count()
df.groupBy($"Value")
  .agg(countDistinct("ID") as "cnt")
  .filter($"cnt" === cnt)
  .select($"Value")
  .show()

输出:

+-----+
|Value|
+-----+
|  XXX|
+-----+
于 2019-05-24T12:46:25.553 回答