【发布时间】:2017-10-24 20:51:49
【问题描述】:
我已经阅读了以前的帖子,但我仍然无法确定为什么我无法将我的 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
【问题讨论】:
标签: postgresql pyspark apache-spark-sql pyspark-sql