我在一个PySpark作业中使用Psycopg2,并且在一个包含所有依赖项的压缩文件中提供它。构建脚本执行以下操作:
python -m pip install -t build/dependencies -r src/requirements.txtrequirements.txt在哪里
SQLAlchemy
psycopg2然后压缩dependencies,我通过--py-files将其提供给spark-submit。当我在电子病历上运行作业时,SQLAlchemy被导入得很好,但我得到了这个错误:
ImportError: No module named 'psycopg2._psycopg'如果我从需求中删除psycopg2,并手动(通过pip)将其安装在电子病历上,它就会工作得很好。我的机器和EMR上的Python版本都是3.4.7,但我的机器是Mac (而EMR是linux)。
发布于 2019-06-17 22:08:04
这对我很有效。
df = sqlContext.read.format('jdbc').options(url='jdbc:postgresql:dbserver', dbtable='schema.tablename').load()sqlalchemy连接对我不起作用。
create_engine("postgresql+psycopg2://user:password@/dbname")尝试将数据库连接到sqlcontext,将会起作用。
https://stackoverflow.com/questions/49910897
复制相似问题