2016-11-21 35 views
1

我想通過Spark從MySQL讀取數據。 我看到的API能夠讀取特定表中的數據。 類似的,如何使用Spark在MySQL(JDBC)上執行連接?

val prop = new java.util.Properties 
prop.setProperty("user", "<username>") 
prop.setProperty("password", "<password>") 

sparkSession.read.jdbc("jdbc:mysql://????:3306/???", "some-table", prop) 

現在,我想執行連接表的查詢。有誰知道如何做到這一點(在數據庫端,而不是在Spark SQL中)?

感謝,

葉蘭

回答

5

你需要使用「表格」的說法作爲查詢:

val table = "(SELECT foo JOIN bar ON foo.id = bar.id) as t" 

spark.read.jdbc("jdbc:mysql://????:3306/???", table, prop) 

你應該注意到,給人一種別名查詢是重要或這是行不通的。

+0

你不需要把它作爲wiki – eliasah

+0

@eliasah很多編輯...我讓我的所有文章維基:)感謝您的補充! – 2016-11-21 13:11:14

+1

如果你想繼續給予獎勵,你需要一些代表:P – eliasah