Проблема с соединением 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 ответов

Другие вопросы по тегам