polars.LazyFrame.collect
-
Материализовать этот
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 │ └─────┴─────┴─────┘
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
© 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