我们有一个方案,其中我们必须联接来自不同来源的多个表。例如我们有
table1
,table2
来自mysql1 table3
,table4
来自mysql2 table5
来自mysql3 table6
,table7
,table8
我们要在同一查询中联接所有表。如何为所有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次,或者有没有更好的方法来拥有配置文件并从那里连接?
答案 0 :(得分:0)
忘记它,这是不可能的。 6个DB是6个jdbc。