polars.LazyFrame.execute
-
Выполнить запрос и получить
QueryResult.Этот способ материализации
LazyFrameне гарантирует, где именно будет материализован результат. Для GPU-движка это может быть GPU, для распределённого движка — кластер или удалённое хранилище, а потоковый движок при необходимости может выгрузить результат.QueryResultвсегда можно использовать как новыйLazyFrame, вызвав.lazy- Параметры:
-
- engine
-
Выбор движка для обработки запроса; параметр необязательный. Также можно передать экземпляр
Engine. На данный момент, если задано значение"auto"(по умолчанию), запрос выполняется с помощью движка polars in-memory. Polars также попытается использовать движок, заданный переменной окруженияPOLARS_ENGINE_AFFINITY. Если выбранный движок не может выполнить запрос, запрос выполняется с помощью движка polars in-memory. Если задано значение"gpu", используется GPU-движок. Более точное управление GPU-движком, например выбор устройства в системе с несколькими устройствами, возможно, если передать объектGPUEngineс параметрами конфигурации.Примечание
Режим GPU считается нестабильным. Не все запросы будут успешно выполняться на GPU, однако при неподдерживаемом выполнении они должны прозрачно переключаться на движок по умолчанию.
Запуск с
POLARS_VERBOSE=1позволит узнать, если запрос переключится на другой движок, и почему. - optimizations
-
Этапы оптимизации, выполняемые при оптимизации запроса.
Предупреждение
Эта функциональность считается нестабильной. Она может быть изменена в любой момент без необходимости считать это обратно несовместимым изменением.
- Возвращает:
-
- QueryResult
См. также
-
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
LazyFrame.execute(
*,
optimizations: QueryOptFlags = (,
), engine: EngineType = 'auto', **_kwargs: Any, ) → QueryResult
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.execute.html