polars.LazyFrame.collect_batches
-
Выполняет запрос в потоковом режиме и возвращает генератор, выдающий чанки.
Это позволяет записывать на диск потоковые результаты, размер которых превышает объём оперативной памяти.
Запрос всегда выполняется полностью, если не вызвать
stop, поэтому следует вызывать next, пока не будут получены все чанки.Предупреждение
Эта функциональность считается нестабильной. Она может быть изменена в любой момент, и это не будет считаться нарушением обратной совместимости.
Предупреждение
Этот метод работает значительно медленнее, чем встроенные приёмники данных. Используйте его, только если иначе реализовать нужную логику невозможно.
- Параметры:
-
- chunk_size
-
Количество строк, буферизуемых перед выдачей чанка.
- maintain_order
-
Сохранять порядок обработки данных. Если задать
False, выполнение будет немного быстрее. - lazy
-
Запускать запрос при первом запросе пакета.
- engine
-
Выбор движка для обработки запроса (по умолчанию
"auto"). Также можно передать экземплярEngine. Поддерживаются следующие названия движков:-
"auto": использовать движок, заданный с помощьюConfig.set_engine_affinityили переменной окруженияPOLARS_ENGINE_AFFINITY; если она не задана, используется"streaming". -
"in-memory": перед записью использовать движок для обработки в памяти; это движок по умолчанию. -
"streaming": использовать потоковый движок, который обрабатывает запросы пакетами, снижая нагрузку на память и часто превосходя по производительности движок для обработки в памяти. Вскоре он станет движком Polars по умолчанию. -
"gpu": использовать движок CUDA для GPU (требуется GPU Nvidia иcudf-polars). Для точной настройки передайте объектGPUEngine.
Если выбранный движок не может выполнить запрос, Polars переключается на потоковый движок.
-
- optimizations
-
Этапы оптимизации, выполняемые при оптимизации запроса.
Примеры
>>> lf = pl.scan_csv("/path/to/my_larger_than_ram_file.csv") >>> for df in lf.collect_batches(): ... print(df)
LazyFrame.collect_batches(
*,
chunk_size: int | None = None,
maintain_order: bool = True,
lazy: bool = False,
engine: EngineType = 'auto',
optimizations: QueryOptFlags = (,
), ) → _CollectBatches
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.collect_batches.html