Spec-Zone.ru › Polars

polars.LazyFrame.profile

LazyFrame.profile(
    *,
    type_coercion: bool = True,
    predicate_pushdown: bool = True,
    projection_pushdown: bool = True,
    simplify_expression: bool = True,
    no_optimization: bool = False,
    slice_pushdown: bool = True,
    comm_subplan_elim: bool = True,
    comm_subexpr_elim: bool = True,
    cluster_with_columns: bool = True,
    collapse_joins: bool = True,
    show_plot: bool = False,
    truncate_nodes: int = 0,
    figsize: tuple[int,
    int] = (18,
    8,
), engine: EngineType = 'auto', optimizations: QueryOptFlags = (), **_kwargs: Any, ) → tuple[DataFrame, DataFrame]

Профилирование LazyFrame.

Устарело с версии 1.43.0: Этот метод был создан для прежнего движка, работающего в памяти, однако начиная с версии 2.0 Polars по умолчанию использует потоковый движок. Из-за параллельной природы потокового движка данные профилирования, полученные этой функцией, могут вводить в заблуждение.

Метод выполнит запрос и вернёт кортеж, содержащий материализованный DataFrame и DataFrame с данными профилирования для каждого выполненного узла.

Время измеряется в микросекундах.

Параметры:
type_coercion

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

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

predicate_pushdown

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

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

projection_pushdown

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

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

simplify_expression

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

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

no_optimization

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

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

slice_pushdown

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

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

comm_subplan_elim

Будет предпринята попытка кэшировать ветвящиеся подзапросы, возникающие при соединениях таблицы с самой собой или при объединениях.

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

comm_subexpr_elim

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

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

cluster_with_columns

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

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

collapse_joins

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

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

show_plot

Показать диаграмму Ганта с результатами профилирования

truncate_nodes

Обрезать подписи на диаграмме Ганта до указанного числа символов.

figsize

Размер графика профилирования в matplotlib

engine

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

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

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

Примечание

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

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

optimizations

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

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

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

Примеры

>>> 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", maintain_order=True).agg(pl.all().sum()).sort(
...     "a"
... ).profile()  
(shape: (3, 3)
 ┌─────┬─────┬─────┐
 │ a   ┆ b   ┆ c   │
 │ --- ┆ --- ┆ --- │
 │ str ┆ i64 ┆ i64 │
 ╞═════╪═════╪═════╡
 │ a   ┆ 4   ┆ 10  │
 │ b   ┆ 11  ┆ 10  │
 │ c   ┆ 6   ┆ 1   │
 └─────┴─────┴─────┘,
 shape: (3, 3)
 ┌─────────────────────────┬───────┬──────┐
 │ node                    ┆ start ┆ end  │
 │ ---                     ┆ ---   ┆ ---  │
 │ str                     ┆ u64   ┆ u64  │
 ╞═════════════════════════╪═══════╪══════╡
 │ optimization            ┆ 0     ┆ 5    │
 │ group_by_partitioned(a) ┆ 5     ┆ 470  │
 │ sort(a)                 ┆ 475   ┆ 1964 │
 └─────────────────────────┴───────┴──────┘)

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

Spec-Zone.ru

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