如何使用Spark执行MySQL(JDBC)连接?

时间:2016-11-21 12:49:20

标签: scala apache-spark apache-spark-sql spark-dataframe

我想通过Spark从MySQL读取数据。 我看到的API能够从特定表中读取数据。 像,

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)?

谢谢,

叶兰

1 个答案:

答案 0 :(得分:5)

您需要使用“table”参数作为查询:

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

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

您应该注意,为查询提供别名非常重要,否则无效。