polars.LazyFrame.collect_async
-
Собрать DataFrame асинхронно в пуле потоков.
Предупреждение
Эта функциональность считается нестабильной. Она может быть изменена в любой момент без того, чтобы это считалось нарушением обратной совместимости.
Собирает данные в DataFrame (как
collect()), но вместо непосредственного возврата DataFrame сбор запланирован в пуле потоков, а этот метод возвращает управление почти мгновенно.Это может быть полезно, если вы используете
geventилиasyncioи хотите передать управление другим гринлетам/задачам, пока собираются LazyFrames.- Параметры:
-
- gevent
-
Вернуть обёртку для
gevent.event.AsyncResultвместо Awaitable - 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 отключается.
-
- optimizations
-
Этапы оптимизации, выполняемые при оптимизации запроса.
Предупреждение
Эта функциональность считается нестабильной. Она может быть изменена в любой момент без того, чтобы это считалось нарушением обратной совместимости.
- Возвращает:
-
-
If gevent=False (default) then returns an awaitable. -
If gevent=True then returns wrapper that has a -
.get(block=True, timeout=None) method.
-
См. также
-
polars.collect_all -
Собрать несколько LazyFrame одновременно.
-
polars.collect_all_async -
Лениво собрать несколько LazyFrame одновременно.
Примечания
В случае ошибки
set_exceptionиспользуется дляasyncio.Future/gevent.event.AsyncResultи повторно вызывается ими.Примеры
>>> import asyncio >>> lf = pl.LazyFrame( ... { ... "a": ["a", "b", "a", "b", "b", "c"], ... "b": [1, 2, 3, 4, 5, 6], ... "c": [6, 5, 4, 3, 2, 1], ... } ... ) >>> async def main(): ... return await ( ... lf.group_by("a", maintain_order=True) ... .agg(pl.all().sum()) ... .collect_async() ... ) >>> asyncio.run(main()) shape: (3, 3) ┌─────┬─────┬─────┐ │ a ┆ b ┆ c │ │ --- ┆ --- ┆ --- │ │ str ┆ i64 ┆ i64 │ ╞═════╪═════╪═════╡ │ a ┆ 4 ┆ 10 │ │ b ┆ 11 ┆ 10 │ │ c ┆ 6 ┆ 1 │ └─────┴─────┴─────┘
LazyFrame.collect_async(
*,
gevent: bool = False,
engine: EngineType = 'auto',
optimizations: QueryOptFlags = (,
), ) → Awaitable[DataFrame] | _GeventDataFrameResult[DataFrame]
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.collect_async.html