PySpark:没有名为'psycopg2._psycopg'的模块

时间:2018-04-19 00:29:54

标签: python psycopg2 emr amazon-emr

我在PySpark作业中使用Psycopg2,我在一个包含所有依赖项的zip文件中提供它。构建脚本执行此操作:

python -m pip install -t build/dependencies -r src/requirements.txt

其中requirements.txt

SQLAlchemy
psycopg2

然后拉<{1}},我通过dependencies将其提供给spark-submit。当我在EMR上运行作业时,SQLAlchemy导入得很好,但是我收到了这个错误:

--py-files

如果我从需求中删除ImportError: No module named 'psycopg2._psycopg' 并手动将其安装在EMR上(通过psycopg2),它就可以正常工作了。我的机器和EMR上的Python版本是3.4.7,但我的机器是Mac(而EMR是linux)。

1 个答案:

答案 0 :(得分:0)

这对我有用。

df = sqlContext.read.format('jdbc').options(url='jdbc:postgresql:dbserver', dbtable='schema.tablename').load()

sqlalchemy连接对我不起作用。

create_engine("postgresql+psycopg2://user:password@/dbname")

尝试您的数据库连接到sqlcontext,将起作用。