将Spark 2.4连接到Postgresql-10.4

时间:2019-06-13 18:45:18

标签: apache-spark postgresql-10

需要将Spark 2.4连接到Postgresql 10.4

我使用pyspark尝试建立与Postresql的连接。
我已经下载了postgresql-42.2.5.jar并将其放在我的/ spark / jars目录中。
我已经阅读了很多帖子,并尝试了以下代码的很多变体,但始终会遇到相同的异常:
调用o1128.load时发生错误。 :java.lang.ClassNotFoundException:org.postgresql.Driver

from pyspark.sql import SparkSession

# create spark entry point
sparkSession = SparkSession.builder \
                           .appName('myapp') \
                           .getOrCreate()

df = sparkSession.read \
    .format('jdbc') \
    .option('url', 'jdbc:postgresql://<ip>:5432/<database>') \
    .option('dbtable', 'mytable') \
    .option('user', '<user>') \
    .option('password', '<password>') \
    .option('driver', 'org.postgresql.Driver') \
    .load()

df.printSchema()

sparkSession.stop()

1 个答案:

答案 0 :(得分:0)

解决方案是重新格式化对sparkSession.read的调用,如下所示:

sqlContext.read.format("jdbc")\
    .options(driver="org.postgresql.Driver", 
             url="jdbc:postgresql://<ip>:<port>/<dbname>", 
             dbtable="tablename",
             user="<user>", 
             password="<password").load()