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

Era*_*anM 1 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)
Run Code Online (Sandbox Code Playgroud)

现在,我想对连接表执行查询.有谁知道怎么做(在数据库方面,而不是Spark SQL)?

谢谢,

伊兰

小智 5

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

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

spark.read.jdbc("jdbc:mysql://????:3306/???", table, prop)
Run Code Online (Sandbox Code Playgroud)

您应该注意,为查询提供别名很重要,否则这将无效.