2016-11-07 5 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

このようなものを使用できます。 Javaでは

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

OR

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

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

私はプログラム的ISIN入力(選択リスト)を取得するので、私は拳オプションを使用することはできません。 2番目のオプションはScalaコードでのみ動作します。 – Boris

+0

@Boris:私の答えを更新しました。 – Shankar

+0

@Shankar:素敵な答え。努力の名誉! –

関連する問題