gpt4 book ai didi

postgresql - Pyspark 连接到 ipython 笔记本中的 Postgres 数据库

转载 作者:行者123 更新时间:2023-11-29 11:44:33 33 4
gpt4 key购买 nike

我已经阅读过之前关于此的帖子,但我仍然无法确定为什么我无法将我的 ipython 笔记本连接到 Postgres 数据库。

我能够在 ipython 笔记本中启动 pyspark,SparkContext 加载为“sc”。

我的 .bash_profile 中有以下用于查找 Postgres 驱动程序的内容:

export SPARK_CLASSPATH=/path/to/downloaded/jar

这是我在 ipython 笔记本中连接数据库的操作(基于 this 帖子):

from pyspark.sql import DataFrameReader as dfr
sqlContext = SQLContext(sc)

table= 'some query'
url = 'postgresql://localhost:5432/dbname'
properties = {'user': 'username', 'password': 'password'}

df = dfr(sqlContext).jdbc(
url='jdbc:%s' % url, table=table, properties=properties
)

错误:

Py4JJavaError: An error occurred while calling o156.jdbc.
: java.SQL.SQLException: No suitable driver.

我知道找到我下载的驱动程序时出错,但我不明白为什么在我的 .bash_profile 中添加它的路径时会出现此错误。

我还尝试通过 pyspark --jars 设置驱动程序,但出现“没有这样的文件或目录”错误。

blogpost还展示了如何连接到 Postgres 数据源,但下面也给我一个“没有这样的目录”错误:

 ./bin/spark-shell --packages org.postgresql:postgresql:42.1.4

附加信息:

spark version: 2.2.0
python version: 3.6
java: 1.8.0_25
postgres driver: 42.1.4

最佳答案

我不确定为什么上面的答案对我不起作用,但我想我也可以分享从 jupyter 笔记本(Spark 2.3.1 - Python 3.6.3)运行 pyspark 时对我有用的东西:

from pyspark.sql import SparkSession
spark = SparkSession.builder.config('spark.driver.extraClassPath', '/path/to/postgresql.jar').getOrCreate()
url = 'jdbc:postgresql://host/dbname'
properties = {'user': 'username', 'password': 'pwd'}
df = spark.read.jdbc(url=url, table='tablename', properties=properties)

关于postgresql - Pyspark 连接到 ipython 笔记本中的 Postgres 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46919791/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com