Spec-Zone.ru › Polars

polars.PartitionBy

class polars.PartitionBy(
    base_path: str | Path,
    *,
    file_path_provider: Callable[[FileProviderArgs],
    str | Path | IO[bytes] | IO[str]] | _InternalPlPathProviderConfig | None = None,
    key: str | Expr | Sequence[str | Expr] | Mapping[str,
    Expr] | None = None,
    include_key: bool | None = None,
    max_rows_per_file: int | None = None,
    approximate_bytes_per_file: int | Literal['auto'] | None = 'auto',
)

Конфигурация для записи в несколько выходных файлов.

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

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

Параметры:
base_path

Базовый путь для записи.

file_path_provider

Вызываемый объект для указания пользовательских путей к выходным файлам.

key

Выражения для разбиения на разделы.

include_key

Включать результаты выражений ключей разбиения в выходные файлы.

max_rows_per_file

Максимальное количество строк для записи в каждый файл. Обратите внимание, что в файлах может быть меньше строк.

approximate_bytes_per_file

Приблизительное количество байтов для записи в каждый файл. Оно измеряется как оценочный размер DataFrame в памяти.

Примеры

Разбиение на несколько файлов по годам:

>>> pl.LazyFrame({"year": [2026, 2027, 1970], "month": [0, 0, 0]}).sink_parquet(
...     pl.PartitionBy("data/", key="year")
... )  

Разбиение на несколько файлов по размеру:

>>> pl.LazyFrame({"year": [2026, 2027, 1970], "month": [0, 0, 0]}).sink_parquet(
...     pl.PartitionBy(
...         "data/", max_rows_per_file=1000, approximate_bytes_per_file=100_000_000
...     )
... )  

Разбиение на несколько файлов по годам с ограничением размера отдельных файлов:

>>> pl.LazyFrame({"year": [2026, 2027, 1970], "month": [0, 0, 0]}).sink_parquet(
...     pl.PartitionBy(
...         "data/",
...         key="year",
...         max_rows_per_file=1000,
...         approximate_bytes_per_file=100_000_000,
...     )
... )  
__init__(
    base_path: str | Path,
    *,
    file_path_provider: Callable[[FileProviderArgs],
    str | Path | IO[bytes] | IO[str]] | _InternalPlPathProviderConfig | None = None,
    key: str | Expr | Sequence[str | Expr] | Mapping[str,
    Expr] | None = None,
    include_key: bool | None = None,
    max_rows_per_file: int | None = None,
    approximate_bytes_per_file: int | Literal['auto'] | None = 'auto',
) → None

Методы

__init__(base_path, *[, file_path_provider, ...])

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

Spec-Zone.ru

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