使用Spark从Oracle导入数据

时间:2018-09-27 18:08:18

标签: oracle scala apache-spark databricks

在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数据。

1 个答案:

答案 0 :(得分:0)

首先,您应该通过以下方式再次检查您的Apache Spark™集群是否具有对Oracle数据库的网络访问权限:

%sh
telnet <host> <port>

我假设您的Oracle实例也在您的云帐户中运行。您可能需要进行VPC对等(如果在AWS上),以允许Databricks的群集与另一个VPC中的数据库实例之间的连接以进行私有访问。如果没有隐私问题,您可以通过安全组设置向外界开放。

第二,您的jdbc URL可能不正确。请查看此sample oracle connection和此jdbc connection guide