Пересечение в кадре данных - PullRequest
0 голосов
/ 24 мая 2019

У меня есть фрейм данных в следующем формате.

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

Как мне найти пересечение по идентификаторам?

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

Expected result: XXX

Большое спасибо заранее!

1 Ответ

3 голосов
/ 24 мая 2019

Группировка по Value и проверка, в каких группах присутствуют все значения

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

Выход:

+-----+
|Value|
+-----+
|  XXX|
+-----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...