Я пытаюсь отфильтровать Spark DataFrame, используя список на Java.

java.util.List<Long> selected = ....;
DataFrame result = df.filter(df.col("something").isin(????));

Проблема в том, что метод isin(...) принимает Scala Seq или varargs.

Передача JavaConversions.asScalaBuffer(selected) тоже не работает.

Любые идеи?

6
Boris 7 Ноя 2016 в 18:26

2 ответа

Лучший ответ

Используйте метод stream следующим образом:

df.filter(col("something").isin(selected.stream().toArray(String[]::new))))
11
Jacek Laskowski 18 Май 2018 в 13:23

Немного более короткая версия:

df.filter(col("something").isin(selected.toArray()));
0
Popeye 2 Окт 2019 в 00:39