2017-03-13 4 views
1

J'essaie de me connecter à Oracle à Spark et je veux extraire des données de certaines tables et requêtes SQL. Mais je ne suis pas capable de me connecter à Oracle. J'ai essayé différentes options de travail, mais pas regarder. J'ai suivi les étapes ci-dessous. Veuillez me corriger si j'ai besoin de faire des changements. J'utilise la machine Windows 7. J'utilise un ordinateur portable Jupyter pour utiliser Pyspark. J'ai python 2.7 et Spark 2.1.0. J'ai mis un chemin de classe étincelle dans les variables d'environnement:..Essayer de se connecter à Oracle à partir de Spark

SPARK_CLASS_PATH = C:\Oracle\Product\11.2.0\client_1\jdbc\lib\ojdbc6.jar 

jdbcDF = sqlContext.read.format ("jdbc") l'option ("driver", "oracle.jdbc.driver.OracleDriver") Option ("url", "jdbc: oracle: // serveur: port #/base de données") .option ("dbtable", "Table_name") .option ("user", "nom d'utilisateur") .option ("mot de passe", " . mot de passe ") charge()

Erreurs:

1.Py4JJavaError:

An error occurred while calling o148.load. 
: java.sql.SQLException: Invalid Oracle URL specified 

2.Py4JJavaError:

An error occurred while calling o114.load. : java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 

Un autre scénario:

from pyspark import SparkContext, SparkConf 
    from pyspark.sql import SQLContext 
    ORACLE_DRIVER_PATH = "C:\Oracle\Product\11.2.0\client_1\jdbc\lib\ojdbc7.jar"            
    Oracle_CONNECTION_URL ="jdbc:oracle:thin:username/[email protected]:port#/dbservicename"  
    conf = SparkConf() 
    conf.setMaster("local") 
    conf.setAppName("Oracle_imp_exp")  
    sqlContext = SQLContext(sc) 
    ora_tmp=sqlContext.read.format('jdbc').options(
     url=Oracle_CONNECTION_URL, 
     dbtable="tablename", 
     driver="oracle.jdbc.OracleDriver" 
     ).load() 

j'obtiens ci-dessous erreur.

Error: IllegalArgumentException: u"Error while instantiating org.apache.spark.sql.hive.HiveSessionState':" 

Aidez-moi à m'en procurer.

+0

Je suis nouveau sur Spark et Python – Ramsey

Répondre

1

Celui-ci a été élaboré avec ce changement.

sqlContext = SQLContext(sc) 
    ora_tmp=spark.read.format('jdbc').options(
     url=Oracle_CONNECTION_URL, 
     dbtable="tablename", 
     driver="oracle.jdbc.OracleDriver" 
     ).load()