Скрипт Python Polars приводит к утечке памяти и сбою (сканирует CSV в ленивые кадры - записывает в базу данных)Python

Программы на Python
Anonymous
Скрипт Python Polars приводит к утечке памяти и сбою (сканирует CSV в ленивые кадры - записывает в базу данных)

Сообщение Anonymous »

Я написал небольшой скрипт для сканирования CSV в полярах Python, выбора определенных столбцов/фильтрации определенных строк в ленивых кадрах и загрузки результата в базу данных Postgres.
Скрипт работает с меньшим тестовым CSV, но когда я пытаюсь запустить его с «настоящим» CSV в моем наборе данных, процесс Python продолжает накапливать память до тех пор, пока не произойдет сбой.
Я тестировал его как на Windows, так и на macOS, первый компьютер имеет 64 ГБ ОЗУ, а второй — 32 ГБ, поэтому я почти уверен, что это не аппаратная проблема.
Независимо от количества поисков, которые я выполнял в Интернете, кажется, ничто не решает мою проблему. Установка low_memory в значение true, Collect(engine='streaming') или использование раковины_csv тоже не сработали.
Вот мой код:

Код: Выделить всё

import polars as pl
from sqlalchemy import create_engine

result = (

pl.scan_csv("/path/to/file/201601.csv",
separator="|",
encoding='utf8-lossy',
try_parse_dates=True
)

#selecting specific columns
.select(
["ProgramClassID", "NetworkAffiliationID", "LogServiceID", "LogEntryDate","StartTime", "EndTime","Duration",  "ProgramTitle", "Subtitle"]
)

#Filtering out all other broadcasters than SRC/3680
.filter(
pl.col("LogServiceID") != 3680)

#sorting by date
.sort(
"LogEntryDate")

#collecting to dataframe
.collect()

)

#defining login details for db

uri='postgresql://postgres:pwd@0.0.0.0:5432/crtc_program_logs'

#writing to db
result.write_database(table_name="polars_test_02",
connection=uri,
if_table_exists="replace"
)
Вот файл CSV, который я использую.

Вернуться в «Python»