我正在尝试用pyhive连接到hive服务器。到目前为止,我有:
from pyhive import hive
import pandas as pd
# Create Hive connection
conn = hive.Connection(host="*********", port=10000, auth='NONE')
df = pd.read_sql("select max_temperature_f from `201402_weather_data` LIMIT 10", conn)
print(df.head())
在我的hive-site.xml配置中,我有:
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
<final>false</final>
<source>programmatically</source>
<source>org.apache.hadoop.hive.conf.LoopingByteArrayInputStream@56f71edb</source>
</property>
和
<property>
<name>hive.server2.transport.mode</name>
<value>binary</value>
<final>false</final>
<source>programmatically</source>
<source>org.apache.hadoop.hive.conf.LoopingByteArrayInputStream@56f71edb</source>
</property>
据我所知,这些是我可以连接到配置单元服务器的正确设置(假设我不需要任何身份验证)。执行脚本时出现错误:
Traceback (most recent call last):
File "D:/****/hive_connector.py", line 8, in <module>
auth='NONE')
File "C:\Users\***\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyhive\hive.py", line 192, in __init__
self._transport.open()
File "C:\Users\***\AppData\Local\Programs\Python\Python37-32\lib\site-packages\thrift_sasl\__init__.py", line 85, in open
message=("Could not start SASL: %s" % self.sasl.getError()))
thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'
我使用的是windows,所以我不得不手动下载并安装sasl-sasl-0.2.1-cp37-cp37m-win32.whl
我正在使用:
pyhive-0.6.3,sasl-0.2.1,thrift-0.13.0,thrift sasl-0.4.2,thriftpy2-0.4.11(不知道这是从哪里来的)
我看到了很多问题,我尝试了很多方法,但是我没能成功地运行脚本。你能给我指出正确的解决办法吗?是sasl包导致了这些问题吗?
暂无答案!
目前还没有任何答案,快来回答吧!