2017-03-16 2 views
0

So übergeben Sie die Variable in den Spark-Datenrahmenfilter und für die IF-Bedingung.So binden/übergeben Sie Variablen im Spark-Datenrahmen

Ich bin auffüllt Wert von Spark-Datenrahmen

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

ich diese variablen Daten in Datenrahmen Filteroption übergeben werden soll.

Ich habe versucht, die unten, aber es gibt leeren Wert.

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

Beide funktionieren nicht.

Und ich habe versucht, in IF-Anweisung zu verwenden.

Bitte führen Sie mich.

Antwort

0

Nach der Expression kann verwendet werden:

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

für Streicher Zitate erforderlich:

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

Wenn ich verstehe Ihre Frage, Sie versuchen, einen Datenrahmen zu filtern. Sie können es wie folgt tun:

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

Hier können Sie Ihre Daten filtern, um nur Zeilen mit Col = „100“ zu halten. Aber "100" ist eine Konstante. Anscheinend möchten Sie mit Werten filtern, die von einem anderen Datenrahmen kommen.

Dazu müssen Sie eine join verwenden.

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")) 
Verwandte Themen