【发布时间】:2018-09-27 18:08:18
【问题描述】:
在 Databricks 中,我使用以下代码从 Oracle 中提取数据。
%scala
val empDF = spark.read
.format("jdbc")
.option("url", "jdbc:oracle:thin:username/password//hostname:port/sid")
.option("dbtable", "EMP")
.option("user", "username")
.option("password", "password")
.option("driver", "oracle.jdbc.driver.OracleDriver")
.load()
我收到以下错误:
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
ojdbc6.jar 作为库附加到集群。
我需要连接到 Oracle 来读取表数据。该表也有 BLOB 数据。
【问题讨论】:
-
为什么有
username/password这个网址?另外,可能是以后的问题,sid应该是服务名称,当然可以是一样的。 -
使用 jdbc:oracle:@//hostname:port/sid 。另外,一些主机名存在与 Spark 工作人员的 DNS 解析问题,解决方案是将它们添加到 Spark 已知主机或直接使用 IP 地址主机名
-
我将首先使用 Oracle 数据库上的端口进行 telnet 测试,从我运行 spark 应用程序表单的地方开始。 Spark驱动程序可以在任何节点上运行,所以最好从随机节点进行telnet测试。
标签: oracle scala apache-spark databricks