运行耗时太长的查询后出现pyhive连接问题

sauutmhj  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(681)

我正在使用pandas.read\ sql函数和配置单元连接来提取一个非常大的数据。我有这样一个剧本:

  1. df = pd.read_sql(query_big, hive_connection)
  2. df2 = pd.read_sql(query_simple, hive_connection)

大查询需要很长时间,在执行之后,python在尝试执行第二行时返回以下错误: raise NotSupportedError("Hive does not have transactions") # pragma: no cover 好像连接有问题。
此外,如果我将第二行替换为multirpocessing.manager().queue(),它将返回以下错误:

  1. File "/usr/lib64/python3.6/multiprocessing/managers.py", line 662, in temp
  2. token, exp = self._create(typeid, *args,**kwds)
  3. File "/usr/lib64/python3.6/multiprocessing/managers.py", line 554, in _create
  4. conn = self._Client(self._address, authkey=self._authkey)
  5. File "/usr/lib64/python3.6/multiprocessing/connection.py", line 493, in Client
  6. answer_challenge(c, authkey)
  7. File "/usr/lib64/python3.6/multiprocessing/connection.py", line 732, in answer_challenge
  8. message = connection.recv_bytes(256) # reject large message
  9. File "/usr/lib64/python3.6/multiprocessing/connection.py", line 216, in recv_bytes
  10. buf = self._recv_bytes(maxlength)
  11. File "/usr/lib64/python3.6/multiprocessing/connection.py", line 407, in _recv_bytes
  12. buf = self._recv(4)
  13. File "/usr/lib64/python3.6/multiprocessing/connection.py", line 383, in _recv
  14. raise EOFError
  15. EOFError

似乎这种错误与connection.py中的exit函数出错有关。此外,当我在第一个命令中更改查询以提取不需要太长时间的较小数据时,一切都正常。因此,我假设可能是因为执行第一个查询花费的时间太长,所以某些查询被不正确地终止。导致这两个错误的原因,两者在性质上有很大不同,但都与断开连接问题有关。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题