2017-03-16 5 views
0

変数をSparkデータフレームフィルタに渡す方法とIF条件について説明します。私はSparkデータフレームで変数をバインド/パスする方法

は、SparkデータフレームIは、データフレームのフィルタオプションにこの変数データを渡したい

val data=sqlContext.sql("Select Col from Tables1") 

から値を読み込みます。

私は以下を試しましたが、空の値を与えています。

val df=df1.filter($"Column1"===data) and 
val df=df1.filter($"Column1"===$data) 

どちらも機能しません。

私はIF文で使用しようとしました。

私をご案内ください。

答えて

0

表現を使用することができ、次のとおりです。文字列の引用符のため

df1.filter($"Column1=$data") 

が必要とされています

df1.filter($"Column1='$data'") 
0

私はあなたの質問を理解していれば、あなたはデータフレームをフィルタリングしてみてください。 あなたはこのようにそれを行うことができます。

val df = sqlContext.sql("Select Col from Tables1") 
df.filter(df("Col") === "100") 

ここでは、コルでのみラインを維持してデータをフィルタリング=「100」。 しかし、 "100"は定数です。 明らかに、別のデータフレームからの値でフィルタリングする必要があります。

これにはjoinを使用する必要があります。

val data = sqlContext.sql("Select Col from Data") 
val df1 = sqlContext.sql("Select id, Col from Table1") 
val df = df1.join(data, df1("Col") === data("Col")) 
関連する問題