Spec-Zone.ru › Polars

polars.LazyFrame.sink_ipc

LazyFrame.sink_ipc(
    path: str | Path | IO[bytes] | PartitionBy,
    *,
    compression: IpcCompression | None = 'uncompressed',
    compat_level: CompatLevel | None = None,
    record_batch_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,
    mkdir: bool = False,
    lazy: bool = False,
    engine: EngineType = 'auto',
    optimizations: QueryOptFlags = (,
), _record_batch_statistics: bool = False, sinked_paths_callback: SinkedPathsCallback | None = None, ) → LazyFrame | None

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

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

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

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

compression{‘uncompressed’, ‘lz4’, ‘zstd’}

Выберите «zstd» для хорошего сжатия. Выберите «lz4» для быстрого сжатия и распаковки.

compat_level

Уровень совместимости, используемый при экспорте структур данных Polars. Для большинства пользователей рекомендуется уровень совместимости по умолчанию. Используйте pl.CompatLevel.oldest() для максимального уровня совместимости. pl.CompatLevel.newest() использует наивысший поддерживаемый уровень совместимости, но считается нестабильным и может измениться без того, чтобы это считалось несовместимым изменением.

record_batch_size

Размер пакетов записей, выраженный в количестве строк.

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

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

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 синхронизирует содержимое файла и метаданные.

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

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

mkdir: bool

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

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

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

lazy: bool

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

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

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

engine

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

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

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

Примечание

В настоящее время движок GPU не поддерживается.

optimizations

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

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

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

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

sinked_paths_callback

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

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

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

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

См. также

PartitionBy

Примеры

>>> lf = pl.scan_csv("/path/to/my_larger_than_ram_file.csv")  
>>> lf.sink_ipc("out.arrow")  

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

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

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

>>> pl.LazyFrame({"x": [1, 2, 1], "y": [3, 4, 5]}).sink_ipc(
...     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_ipc.html

Spec-Zone.ru

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