运行时间过长的查询后,pyhive连接问题

时间:2019-02-06 13:24:04

标签: python hive pyhive

我正在使用带有蜂巢连接的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中的退出功能混乱有关。而且,当我在第一个命令中更改查询以提取不需要太长时间的较小数据时,一切正常。因此,我认为可能是因为执行第一个查询所需的时间太长,导致某些操作被不正确地终止。导致了两个错误,这两个错误本质上都非常不同,但是都与断开的连接问题有关。

0 个答案:

没有答案