Anaconda2.7环境下SQLAlchemy加载Hive方言插件失败求助
解决SQLAlchemy连接Hive时的NoSuchModuleError问题
你碰到的这个NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:hive,本质是SQLAlchemy本身不带Hive的方言支持,得装专门的适配库才行。结合你用Python2.7的环境,给你一步步捋解决方案:
1. 安装适配Python2.7的Hive-SQLAlchemy依赖包
Python2.7已经停止维护了,得找最后支持它的pyhive版本,执行这条命令:
pip install pyhive[sqlalchemy]==0.6.5
这个版本是最后兼容Python2.7的带SQLAlchemy适配的pyhive,能补上SQLAlchemy缺的Hive方言插件。
2. 检查并修正Hive连接URL
你的连接URL里端口写的是100015,Hive默认的Thrift端口是10000,先确认下你的Hive服务是不是真的用这个非常规端口,如果是笔误就改成标准端口:
spark_url = "hive://hdfs@10.2.1.45:10000/x1111_ods"
3. 可选:添加连接参数规避认证问题
如果你的Hive集群不需要SASL认证,可以在创建引擎时加个参数,避免额外的认证报错:
spark_conn = create_engine(spark_url, connect_args={'auth': 'NOSASL'})
按上面的步骤操作后,重新运行代码应该就能解决找不到Hive方言的问题了。
内容的提问来源于stack exchange,提问作者liu gang
相关产品推荐
相关产品推荐

