Как фильтровать по содержанию все в Spark? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть фрейм данных:

val df = Seq(
    ("A",11,5),
    ("A",12,10),
    ("A",13,1),
    ("B",11,5),
    ("B",14,5),
    ("B",13,5)
    ).toDF("id","type","value")

df.groupBy($"id").agg(collect_set("value")).show(false)

+---+------------------+
|id |collect_set(value)|
+---+------------------+
|B  |[5]               |
|A  |[1, 5, 10]        |
+---+------------------+

Мне нужно отфильтровать идентификаторы (или количество уникальных идентификаторов), у которых все значения в наборе меньше 5 (или любого числа). Например, В вышеупомянутой df только B имеет все значения меньше 5.

Может кто-нибудь сказать мне, как мне это сделать?

1 Ответ

0 голосов
/ 08 ноября 2018
df.groupBy($"id")
  .agg(collect_set("value"), max($"value").as("max_value"))
  .filter($"max_value" <= 5)
  .show(false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...