Spec-Zone.ru › Polars

polars.LazyFrame.sink_parquet

LazyFrame.sink_parquet(
    path: str | Path | IO[bytes] | PartitionBy,
    *,
    compression: ParquetCompression = 'zstd',
    compression_level: int | None = None,
    statistics: bool | str | dict[str,
    bool] = True,
    row_group_size: int | None = None,
    data_page_size: int | None = None,
    maintain_order: bool = True,
    storage_options: StorageOptionsDict | None = None,
    credential_provider: CredentialProviderFunction | Literal['auto'] | None = 'auto',
    retries: int | None = None,
    sync_on_close: SyncOnCloseMethod | None = None,
    metadata: ParquetMetadata | None = None,
    arrow_schema: ArrowSchemaExportable | None = None,
    mkdir: bool = False,
    lazy: bool = False,
    engine: EngineType = 'auto',
    optimizations: QueryOptFlags = (,
), sinked_paths_callback: SinkedPathsCallback | None = None, ) → LazyFrame | None

Вычислить запрос в потоковом режиме и записать результат в файл Parquet.

Это позволяет записывать на диск потоковые результаты, размер которых превышает объём оперативной памяти.

движок:ПотоковыйРаспределённый
Параметры:
path

Путь к файлу, в который следует записать данные.

compression{‘lz4’, ‘uncompressed’, ‘snappy’, ‘gzip’, ‘brotli’, ‘zstd’}

Выберите “zstd” для эффективного сжатия. Выберите “lz4” для быстрого сжатия и распаковки. Выберите “snappy”, если при работе со старыми средствами чтения Parquet важна обратная совместимость.

compression_level

Уровень сжатия. Чем выше уровень сжатия, тем меньше размер файлов на диске.

  • “gzip” : мин. уровень: 0, макс. уровень: 9, по умолчанию: 6.
  • “brotli” : мин. уровень: 0, макс. уровень: 11, по умолчанию: 1.
  • “zstd” : мин. уровень: 1, макс. уровень: 22, по умолчанию: 3.
statistics

Записывать статистику в заголовки Parquet. Это поведение используется по умолчанию.

Возможные значения:

  • True: включить стандартный набор статистики (по умолчанию). Некоторые виды статистики могут быть отключены.
  • False: отключить всю статистику
  • “full”: вычислить и записать всю доступную статистику.
  • { "statistic-key": True / False, ... }. Доступные ключи:

    • “min”: минимальное значение столбца (по умолчанию: True)
    • “max”: максимальное значение столбца (по умолчанию: True)
    • “distinct_count”: количество уникальных значений столбца (по умолчанию: False)
    • “null_count”: количество нулевых значений в столбце (по умолчанию: True)
row_group_size

Размер групп строк в количестве строк. Если значение равно None (по умолчанию), используются чанки DataFrame. Запись небольшими чанками может снизить нагрузку на память и увеличить скорость записи.

data_page_size

Ограничение размера отдельных страниц данных. Если значение не задано, по умолчанию используется 1024 * 1024 байт.

maintain_order

Сохранять порядок обработки данных. Если установить значение False, обработка будет немного быстрее.

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

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

storage_options

Параметры, определяющие способ подключения к облачному провайдеру.

В настоящее время поддерживаются облачные провайдеры AWS, GCP и Azure. Список поддерживаемых ключей:

  • aws
  • gcp
  • azure
  • Hugging Face (hf://): принимает ключ API в параметре token: {'token': '...'} либо через переменную окружения HF_TOKEN.

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

credential_provider

Функция, которая предоставляет учётные данные для облачного хранилища. Функция должна возвращать словарь с ключами учётных данных и, при необходимости, сроком их действия.

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

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

retries

Количество повторных попыток при сбое доступа к облачному экземпляру.

Устарело с версии 1.37.1: Вместо этого передайте {“max_retries”: n} через storage_options.

sync_on_close: { None, ‘data’, ‘all’ }

Синхронизировать данные с диском перед закрытием файла.

  • None не выполняет синхронизацию.
  • data синхронизирует содержимое файла.
  • all синхронизирует содержимое файла и метаданные.

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

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

metadata

Словарь или функция обратного вызова для добавления пар «ключ — значение» в метаданные файла Parquet.

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

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

arrow_schema

Пользовательская схема Arrow для записи в файл. Это позволяет задавать пользовательскую схему и метаданные на уровне полей. Имена и типы данных должны совпадать.

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

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

mkdir: bool

Рекурсивно создать все каталоги, указанные в пути.

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

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

lazy: bool

Отложить запуск выполнения до вызова collect.

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

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

engine

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

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

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

optimizations

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

Не влияет на результат, если для lazy задано значение True.

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

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

sinked_paths_callback

Функция обратного вызова, которой передаются сведения о путях, куда записаны данные.

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

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

Возвращает:
DataFrame

См. также

PartitionBy

Примеры

>>> lf = pl.scan_csv("/path/to/my_larger_than_ram_file.csv")  
>>> lf.sink_parquet("out.parquet")  

Запись в объект BytesIO.

>>> import io
>>> buf = io.BytesIO()  
>>> pl.LazyFrame({"x": [1, 2, 1]}).sink_parquet(buf)  

Разделение на разделы в стиле разбиения Hive:

>>> pl.LazyFrame({"x": [1, 2, 1], "y": [3, 4, 5]}).sink_parquet(
...     pl.PartitionBy("./out/", key="x"),
...     mkdir=True
... )  

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

Spec-Zone.ru

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