我已经阅读了之前的帖子,但我仍然无法确定为什么我无法将我的ipython笔记本连接到Postgres数据库。
我能够在ipython笔记本中启动pyspark,SparkContext被加载为'sc'。
我在我的.bash_profile中有以下内容以查找Postgres驱动程序:
这是我在IPython笔记本中连接到数据库的步骤(基于this帖子):
错误:
我知道这是找不到我下载的驱动程序的错误,但我不明白为什么当我已经在我的.bash_profile中添加了路径时会出现这个错误。
我还尝试通过pyspark --jars设置驱动程序,但是我收到了“没有这样的文件或目录”的错误。
这个blogpost也展示了如何连接到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
~
快捷方式。我认为你做得很对。是的,这是我对Spark的抱怨之一:有许多已弃用的方法来完成所有操作。尽管被弃用,但SPARK_CLASSPATH
对我仍然有效,但我使用的是1.6.1版本。 - sudo