scala - 如何使用Spark对MySQL(JDBC)进行join?

标签 scala apache-spark apache-spark-sql

我想通过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)?

谢谢

埃兰

最佳答案

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

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

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

您应该注意,为查询提供别名很重要,否则将不起作用。

关于scala - 如何使用Spark对MySQL(JDBC)进行join?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40720619/

相关文章:

项目之间的 Scala 代码重用

apache-spark - Pyspark 数据框中的 regexp_replace

apache-spark - 将数据写入Hive Spark SQL时发生ArrayIndexOutOfBoundsException异常

arrays - 如何从结构数组中获取 "select"列?

scala - gradle scalatest留在 “Discovery starting.”

scala - ~ 在 Scala 中做什么?

python - 为什么 Apache-Spark - Python 在本地比 pandas 慢?

python - pyspark sql : Create a new column based on whether a value exists in a different DataFrame's column

python - Pyspark:将列中的 json 分解为多列

scala - 想法 Scala : Could not find output directory