Spark SQL中的多个MySQL服务器连接器

时间:2019-07-11 15:19:26

标签: apache-spark apache-spark-sql

我们有一个方案,其中我们必须联接来自不同来源的多个表。例如我们有

  1. table1table2来自mysql1
  2. table3table4来自mysql2
  3. table5来自mysql3
  4. 蜂巢中的
  5. table6table7table8

我们要在同一查询中联接所有表。如何为所有MySQL连接建立单个连接器?

val jdbcDF = spark.read.format("jdbc").options(
  Map("url" ->  "jdbc:mysql://host1:3306/ontime?user=root&password='ert',
  "dbtable" -> "ontime.ontime_part",
  "fetchSize" -> "10000",
  "partitionColumn" -> "yeard", "lowerBound" -> "1988", "upperBound" -> "2016", "numPartitions" -> "28"
  )).load()
jdbcDF.createOrReplaceTempView("ontime")


val jdbcDF1 = spark.read.format("jdbc").options(
  Map("url" ->  "jdbc:mysql://host2:3306/ontime?user=root&password='xyz',
  "dbtable" -> "intime.intime_part",
  "fetchSize" -> "10000",
  "partitionColumn" -> "yeard", "lowerBound" -> "1988", "upperBound" -> "2016", "numPartitions" -> "28"
  )).load()
jdbcDF1.createOrReplaceTempView("intime")

例如,如果我们有6个数据库,是否需要做6次,或者有没有更好的方法来拥有配置文件并从那里连接?

1 个答案:

答案 0 :(得分:0)

忘记它,这是不可能的。 6个DB是6个jdbc。