2017-03-09 5 views
1

Postgres DBからPySparkでテーブルを読み込もうとしています。私は、次のコードを設定し、SparkContextが存在を確認しました:PySpark sqlContext read Postgres 9.6 NullPointerException

import os 

os.environ['PYSPARK_SUBMIT_ARGS'] = '--driver-class-path /tmp/jars/postgresql-42.0.0.jar --jars /tmp/jars/postgresql-42.0.0.jar pyspark-shell' 


from pyspark import SparkContext, SparkConf 

conf = SparkConf() 
conf.setMaster("local[*]") 
conf.setAppName('pyspark') 

sc = SparkContext(conf=conf) 


from pyspark.sql import SQLContext 

properties = { 
    "driver": "org.postgresql.Driver" 
} 
url = 'jdbc:postgresql://tom:@localhost/gqp' 

sqlContext = SQLContext(sc) 
sqlContext.read \ 
    .format("jdbc") \ 
    .option("url", url) \ 
    .option("driver", properties["driver"]) \ 
    .option("dbtable", "specimen") \ 
    .load() 

は、私は次のエラーを取得する:

Py4JJavaError: An error occurred while calling o812.load. : java.lang.NullPointerException 

私のデータベースの名前はgqpで、表がspecimenであり、それが実行されて確認しましたlocalhostで、Postgres.app macOSアプリケーションを使用してください。

答えて

1

URLが問題でした。

は、もともとは:url = 'jdbc:postgresql://tom:@localhost/gqp'

私はtom:@一部を除去し、それが働きました。 URLはパターンjdbc:postgresql://ip_address:port/db_nameに従う必要がありますが、私はFlaskプロジェクトから直接コピーされました。

これを読んでいる場合は、この同じ間違いを犯さなかったことを祈ってください。

関連する問題