在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数据。
答案 0 :(得分:0)
首先,您应该通过以下方式再次检查您的Apache Spark™集群是否具有对Oracle数据库的网络访问权限:
%sh
telnet <host> <port>
我假设您的Oracle实例也在您的云帐户中运行。您可能需要进行VPC对等(如果在AWS上),以允许Databricks的群集与另一个VPC中的数据库实例之间的连接以进行私有访问。如果没有隐私问题,您可以通过安全组设置向外界开放。
第二,您的jdbc URL可能不正确。请查看此sample oracle connection和此jdbc connection guide。