Spec-Zone.ru › Polars

polars.LazyFrame.collect_batches

LazyFrame.collect_batches(
    *,
    chunk_size: int | None = None,
    maintain_order: bool = True,
    lazy: bool = False,
    engine: EngineType = 'auto',
    optimizations: QueryOptFlags = (,
), ) → _CollectBatches

Выполняет запрос в потоковом режиме и возвращает генератор, выдающий чанки.

Это позволяет записывать на диск потоковые результаты, размер которых превышает объём оперативной памяти.

Запрос всегда выполняется полностью, если не вызвать 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)  

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API