Поляры: проблема нехватки памяти при группировке по максуPython

Программы на Python
Ответить
Anonymous
 Поляры: проблема нехватки памяти при группировке по максу

Сообщение Anonymous »

У меня есть несколько файлов ndjson размером около 800 ГБ. Они получены в результате разбора дампа Википедии. Я хотел бы удалить дубликаты html. Таким образом, я группирую по "html" и выбираю json с самым последним "dateModified".

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

from pathlib import Path
import polars as pl

inDir   = r"E:\Personal Projects\tmp\tarFiles\result2"
outDir  = r"C:\Users\Akira\Documents\out_polars.ndjson"
inDir   = Path(inDir)
outDir  = Path(outDir)

schema = {"name"        : pl.String,
"dateModified": pl.String,
"identifier"  : pl.UInt64,
"url"         : pl.String,
"html"        : pl.String}

lf = pl.scan_ndjson(inDir / "*wiktionary*.ndjson", schema=schema)
lf = lf.group_by(["html"]).agg(pl.max("dateModified").alias("dateModified"))
lf.sink_ndjson(outDir,
maintain_order=False,
engine="streaming")
Однако я столкнулся с ошибкой нехватки памяти (OOM): использование оперативной памяти постепенно увеличивается, пока мой ноутбук не выходит из строя:

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

The Kernel crashed while executing code in the current cell or a previous cell.
Please review the code in the cell(s) to identify a possible cause of the failure.
Click [url=https://aka.ms/vscodeJupyterKernelCrash]here[/url] for more info.
View Jupyter [url=command:jupyter.viewOutput]log[/url] for further details.
Как мы можем решить проблему OOM? Спасибо за разъяснения.


Подробнее здесь: https://stackoverflow.com/questions/798 ... roupby-max
Ответить

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

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

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

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

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