Spec-Zone.ru › Polars

polars.LazyFrame.sink_batches

LazyFrame.sink_batches(
    function: Callable[[DataFrame],
    bool | None],
    *,
    chunk_size: int | None = None,
    maintain_order: bool = True,
    lazy: bool = False,
    engine: EngineType = 'auto',
    optimizations: QueryOptFlags = (,
), ) → LazyFrame | None

Выполняет запрос и вызывает пользовательскую функцию для каждого готового пакета.

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

движок:ПотоковыйРаспределённый

Предупреждение

Эта функциональность считается нестабильной. Она может быть изменена в любой момент без того, чтобы это считалось несовместимым изменением.

Предупреждение

Этот метод работает намного медленнее, чем встроенные приёмники. Используйте его только в том случае, если иначе реализовать вашу логику невозможно.

Параметры:
function

Функция, вызываемая для готового пакета. Если функция возвращает True, это означает, что больше результаты не нужны, что позволяет досрочно остановить выполнение.

chunk_size

Количество строк, которые накапливаются до вызова функции обратного вызова.

maintain_order

Сохранять порядок обработки данных. Если задать False, выполнение будет немного быстрее.

lazy: bool

Ожидать вызова collect перед началом выполнения.

engine

Выбрать движок для обработки запроса (по умолчанию "auto"). Также можно передать экземпляр Engine. Поддерживаются следующие имена движков:

  • "auto": использовать движок, заданный с помощью Config.set_engine_affinity или переменной окружения POLARS_ENGINE_AFFINITY; если она не задана, используется "streaming".
  • "in-memory": использовать перед записью движок, работающий в памяти; это движок по умолчанию.
  • "streaming": использовать потоковый движок, который обрабатывает запросы пакетами, снижая нагрузку на память и часто превосходя по производительности движок, работающий в памяти. Вскоре он станет движком Polars по умолчанию.
  • "gpu": использовать графический процессор CUDA (требуется графический процессор Nvidia и cudf-polars). Для более точной настройки передайте объект GPUEngine.

Если выбранный движок не может выполнить запрос, Polars переключается на потоковый движок.

optimizations

Этапы оптимизации, выполняемые при оптимизации запроса.

Не влияет на выполнение, если для lazy задано значение True.

Примеры

>>> lf = pl.scan_csv("/path/to/my_larger_than_ram_file.csv")  
>>> lf.sink_batches(lambda df: 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.sink_batches.html

Spec-Zone.ru

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