我正在使用pandas.read\ sql函数和配置单元连接来提取一个非常大的数据。我有这样一个剧本:
df = pd.read_sql(query_big, hive_connection)
df2 = pd.read_sql(query_simple, hive_connection)
大查询需要很长时间,在执行之后,python在尝试执行第二行时返回以下错误: raise NotSupportedError("Hive does not have transactions") # pragma: no cover
好像连接有问题。
此外,如果我将第二行替换为multirpocessing.manager().queue(),它将返回以下错误:
File "/usr/lib64/python3.6/multiprocessing/managers.py", line 662, in temp
token, exp = self._create(typeid, *args,**kwds)
File "/usr/lib64/python3.6/multiprocessing/managers.py", line 554, in _create
conn = self._Client(self._address, authkey=self._authkey)
File "/usr/lib64/python3.6/multiprocessing/connection.py", line 493, in Client
answer_challenge(c, authkey)
File "/usr/lib64/python3.6/multiprocessing/connection.py", line 732, in answer_challenge
message = connection.recv_bytes(256) # reject large message
File "/usr/lib64/python3.6/multiprocessing/connection.py", line 216, in recv_bytes
buf = self._recv_bytes(maxlength)
File "/usr/lib64/python3.6/multiprocessing/connection.py", line 407, in _recv_bytes
buf = self._recv(4)
File "/usr/lib64/python3.6/multiprocessing/connection.py", line 383, in _recv
raise EOFError
EOFError
似乎这种错误与connection.py中的exit函数出错有关。此外,当我在第一个命令中更改查询以提取不需要太长时间的较小数据时,一切都正常。因此,我假设可能是因为执行第一个查询花费的时间太长,所以某些查询被不正确地终止。导致这两个错误的原因,两者在性质上有很大不同,但都与断开连接问题有关。
暂无答案!
目前还没有任何答案,快来回答吧!