Я столкнулся с очень странной ошибкой.
Когда я загружаю наборы данных из DWH, используя следующий код независимо от запроса:
from impala.dbapi import connect as impala_connect
def read_from_dwh(query):
'''
Connect to the DWH, read query and close connection
'''
credent = get_credentials_string('DWH', 'user', 'password')
user = credent[0]
pasw = credent[1]
connection = impala_connect(
host='cloudera-impala-proxy.live.bi.io',
port=21050,
user=user,
password=pasw,
auth_mechanism='PLAIN',
use_ssl=True
)
df = pd.read_sql(con=connection, sql=query)
connection.close()
return df
query = f"SELECT * FROM customer_id"
read_from_dwh(query)
Это возвращает MemoryError
.
empty_df = read_from_dwh(empty_forecast_query)
Traceback (most recent call last):
File "C:\Users\Pavlos\Desktop\WORK\Projects\git\project\venv\lib\site-packages\IPython\core\interactiveshell.py", line 3331, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-3-a366e7a5deef>", line 1, in <module>
empty_df = read_from_dwh(empty_forecast_query)
File "C:\Users\Pavlos\Desktop\WORK\Projects\git\project\scripts\connections.py", line 67, in read_from_dwh
df = pd.read_sql(con=connection, sql=query)
MemoryError
Но когда запрос query = f"SELECT * FROM customer_id LIMIT 10"
, он работает нормально.
Я загрузил файл из DWH вручную и прочитал его в память, используя read_csv
из pandas
и загружается нормально (3,8 МБ). Функция, возвращающая ошибку: read_sql
.
Есть идеи для такого поведения?