У Polars не хватает памяти при сборе файла JSONPython

Программы на Python
Ответить
Anonymous
 У Polars не хватает памяти при сборе файла JSON

Сообщение Anonymous »

Мы хотим использовать Polars для загрузки файла JSON размером 22 ГБ (10 миллионов строк и 65 столбцов), но при запуске Collect() у нас заканчивается память, что приводит к сбою программы. Мы используем pl.scan_ndjson для загрузки файла JSON. Мы можем загружать только файлы JSON размером 400 МБ. Сервер имеет 8 ГБ ОЗУ и 2 процессора.
Прежде чем увеличить емкость сервера, мы хотели бы знать, может ли Polars загружать файлы такой формы или есть ли любой трюк, чтобы заставить его работать (например, разрезать файлы JSON на куски или более мелкие наборы данных). Мы пробовали использовать отложенный API, но результат тот же.
Использовались следующие версии:
  • Python 3.12
  • Polars 1.7.0

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

import polars as pl

file_path = "file.json"
lazy_frame = pl.LazyFrame
lazy_frame = pl.scan_ndjson(file_path, infer_schema_length=None)

selected_columns = [
'field1', 'field2', 'field3', 'field4',
'field5', 'field6', 'field7', 'field8'
]
result = lazy_frame.select([pl.col(col) for col in selected_columns])

df = result.collect(streaming=True)
print(df.shape)
Заранее спасибо,

С уважением

Подробнее здесь: https://stackoverflow.com/questions/793 ... -json-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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