将 jdbc 连接传递给 spark 读取

Posted

技术标签:

【中文标题】将 jdbc 连接传递给 spark 读取【英文标题】:Passing jdbc connection to spark read 【发布时间】:2019-02-12 13:01:15 【问题描述】:

我有一个 sql 脚本,它创建仅对该会话有效的临时表。现在运行脚本后,我试图通过 spark 从表中读取数据,然后对其进行处理。下面是我的 spark 读取代码。

sparkSession.read().format("jdbc").option("url", 
jdbcURL).option("dbtable", tableOrQuery).option("user", 
userName).option("password", password)
      .option("driver", driverName).load();

现在我需要传递我创建的 jdbc 连接,以便 spark 可以在同一个会话中读取数据。这可能吗?

【问题讨论】:

顺便说一句,我不久前回答了a similar question - TL;DR;不可能有这样的选择。 【参考方案1】:

不,您不能将 jdbc 连接传递给 spark。它将自己管理 JDBC 连接。

JdbcRelationProvider Create Connection

JdbcUtils connect

【讨论】:

谢谢。你有什么建议我可以做的吗? 您可以获取连接元数据并根据它构建Spark URL,解决方案在***.com/questions/5718952/…

以上是关于将 jdbc 连接传递给 spark 读取的主要内容,如果未能解决你的问题,请参考以下文章

Spark - 将通用数组传递给 GenericRowWithSchema

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

带有 JDBC 连接的 SparkSql [重复]

如何使用 JDBC 从 Oracle 读取数据集?

Spark读取JDBC调优

如何使用 spark.read.jdbc 读取不同 Pyspark 数据帧中的多个文件