2016-04-18 64 views
-1

樣品表:如何將where子句作爲變量傳遞給Spark SQL中的查詢?

+---------------------------------------------------------++------+ 
    |     Name_Age        || ID | 
    +---------------------------------------------------------++------+ 
    |"SUBHAJIT SEN":28,"BINOY MONDAL":26,"SHANTANU DUTTA":35 || 15 | 
    |"GOBINATHAN SP":35,"HARSH GUPTA":27,"RAHUL ANAND":26  || 16 | 
    +---------------------------------------------------------++------+ 

如何通過WHERE子句變量來查詢?

我希望的查詢是:Select Name_Age from table where ID=15因此,其中變量是ID = 15。

回答

2

如果數據已註冊爲一個表(A蜂巢表或致電registerTempTableDataFrame後),您可以使用SQLContext.sql

val whereClause: String = "ID=15" 
sqlContext.sql("Select Name_Age from table where " + whereClause) 

如果你有df: DataFrame對象要查詢:

// using a string filter: 
df.filter(whereClause).select("Name_Age") 
+0

我不想硬編碼where子句。我想把它作爲變量傳遞。 –

+0

我也想使用變量將值傳遞給where子句 –

+0

首先 - 然後在您的問題中清楚 - 給出一個示例輸入!哪一部分應該是通過的值 - 「15」? 「ID = 15」? –

-2

下面的代碼可以讓你答案:

spark.sql("""Select Name_Age from table where ID='15'""")