2016-11-07 94 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:很好的答案。努力的榮譽! –

相關問題