2016-11-07 62 views
2

我正在尝试使用Java中的列表来过滤Spark DataFrame。如何在Spark Java中使用isin中的DataFrame过滤器?

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

问题是isin(...)方法接受Scala Seq或Scala varang。

传入JavaConversions.asScalaBuffer(选中)也不起作用。

任何想法?

回答

3

你可以使用这样的东西。

df.filter(col("something").isin("valu1","value2") 

OR

val list = List("value1","value2") 
df.filter(col("something").isin(list: _*) 

在Java:

df.filter(col("something").isin(list.stream().toArray(String[]::new)))) 
+0

因为我得到的ISIN输入(选择列表)编程,我不能用拳头选项。 第二个选项只适用于Scala代码。 – Boris

+0

@Boris:更新了我的答案。 – Shankar

+0

@Shankar:很好的答案。努力的荣誉! –

相关问题