Spec-Zone.ru › Polars

polars.LazyFrame.collect

LazyFrame.collect(
    *,
    type_coercion: bool = True,
    predicate_pushdown: bool = True,
    projection_pushdown: bool = True,
    simplify_expression: bool = True,
    slice_pushdown: bool = True,
    comm_subplan_elim: bool = True,
    comm_subexpr_elim: bool = True,
    cluster_with_columns: bool = True,
    collapse_joins: bool = True,
    no_optimization: bool = False,
    engine: EngineType = 'auto',
    background: bool = False,
    optimizations: QueryOptFlags = (,
), **_kwargs: Any, ) → DataFrame | InProcessQuery

Материализовать этот LazyFrame в DataFrame.

По умолчанию включены все оптимизации запросов. Отдельные оптимизации можно отключить, задав соответствующий параметр равным False.

Параметры:
type_coercion

Выполнить оптимизацию приведения типов.

Устарело с версии 1.30.0: Используйте параметры optimizations.

predicate_pushdown

Выполнить оптимизацию проталкивания предикатов.

Устарело с версии 1.30.0: Используйте параметры optimizations.

projection_pushdown

Выполнить оптимизацию проталкивания проекций.

Устарело с версии 1.30.0: Используйте параметры optimizations.

simplify_expression

Выполнить оптимизацию упрощения выражений.

Устарело с версии 1.30.0: Используйте параметры optimizations.

slice_pushdown

Оптимизация проталкивания срезов.

Устарело с версии 1.30.0: Используйте параметры optimizations.

comm_subplan_elim

Будет предпринята попытка кэшировать ветвящиеся подзапросы, возникающие при self-join или объединении.

Устарело с версии 1.30.0: Используйте параметры optimizations.

comm_subexpr_elim

Общие подвыражения будут кэшироваться и повторно использоваться.

Устарело с версии 1.30.0: Используйте параметры optimizations.

cluster_with_columns

Объединить последовательные независимые вызовы with_columns

Устарело с версии 1.30.0: Используйте параметры optimizations.

collapse_joins

Объединить join и фильтры в более быстрый join

Устарело с версии 1.30.0: Используйте параметры optimizations.

no_optimization

Отключить (некоторые) оптимизации.

Устарело с версии 1.30.0: Используйте параметры optimizations.

engine

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

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

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

Примечание

Режим GPU считается нестабильным. Не все запросы могут успешно выполняться на GPU, однако при неподдерживаемом выполнении должен происходить незаметный переход к движку по умолчанию.

Запуск с POLARS_VERBOSE=1 позволит узнать, если запрос переключился на другой движок, и почему.

background

Выполнить запрос в фоновом режиме и получить дескриптор запроса. С его помощью можно получить результат или отменить запрос.

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

Фоновый режим считается нестабильным. Он может быть изменён в любой момент без того, чтобы это считалось несовместимым изменением.

optimizations

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

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

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

Возвращает:
DataFrame

См. также

explain

Вывести план запроса, который выполняется методом collect.

profile

Выполнить LazyFrame и измерить время выполнения каждого узла графа вычислений.

polars.collect_all

Одновременно выполнить несколько LazyFrame.

polars.Config.set_streaming_chunk_size

Задать размер потоковых пакетов.

Примеры

>>> lf = pl.LazyFrame(
...     {
...         "a": ["a", "b", "a", "b", "b", "c"],
...         "b": [1, 2, 3, 4, 5, 6],
...         "c": [6, 5, 4, 3, 2, 1],
...     }
... )
>>> lf.group_by("a").agg(pl.all().sum()).collect()  
shape: (3, 3)
┌─────┬─────┬─────┐
│ a   ┆ b   ┆ c   │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 │
╞═════╪═════╪═════╡
│ a   ┆ 4   ┆ 10  │
│ b   ┆ 11  ┆ 10  │
│ c   ┆ 6   ┆ 1   │
└─────┴─────┴─────┘

Выполнение в потоковом режиме

>>> lf.group_by("a").agg(pl.all().sum()).collect(
...     engine="streaming"
... )  
shape: (3, 3)
┌─────┬─────┬─────┐
│ a   ┆ b   ┆ c   │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 │
╞═════╪═════╪═════╡
│ a   ┆ 4   ┆ 10  │
│ b   ┆ 11  ┆ 10  │
│ c   ┆ 6   ┆ 1   │
└─────┴─────┴─────┘

Выполнение в режиме GPU

>>> lf.group_by("a").agg(pl.all().sum()).collect(engine="gpu")  
shape: (3, 3)
┌─────┬─────┬─────┐
│ a   ┆ b   ┆ c   │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 │
╞═════╪═════╪═════╡
│ b   ┆ 11  ┆ 10  │
│ a   ┆ 4   ┆ 10  │
│ c   ┆ 6   ┆ 1   │
└─────┴─────┴─────┘

С указанием используемого устройства

>>> lf.group_by("a").agg(pl.all().sum()).collect(
...     engine=pl.GPUEngine(device=1)
... )  
shape: (3, 3)
┌─────┬─────┬─────┐
│ a   ┆ b   ┆ c   │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 │
╞═════╪═════╪═════╡
│ b   ┆ 11  ┆ 10  │
│ a   ┆ 4   ┆ 10  │
│ c   ┆ 6   ┆ 1   │
└─────┴─────┴─────┘

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.collect.html

Spec-Zone.ru

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