Pandas ошибка памяти с набором данных 3,8 МБ, загруженным из базы данных sql - PullRequest
0 голосов
/ 18 июня 2020

Я столкнулся с очень странной ошибкой.

Когда я загружаю наборы данных из 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.

Есть идеи для такого поведения?

...