polars.LazyFrame.sink_parquet#
- LazyFrame.sink_parquet(
- path: str | Path,
- *,
- compression: str = '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,
- type_coercion: bool = True,
- _type_check: bool = True,
- predicate_pushdown: bool = True,
- projection_pushdown: bool = True,
- simplify_expression: bool = True,
- slice_pushdown: bool = True,
- collapse_joins: bool = True,
- no_optimization: bool = False,
- storage_options: dict[str, Any] | None = None,
- credential_provider: CredentialProviderFunction | Literal['auto'] | None = 'auto',
- retries: int = 2,
在流模式下评估查询并将结果写入Parquet文件。
警告
流模式被认为是不稳定的。它可能会在任何时候更改,而不被视为破坏性更改。
这允许将大于RAM的流式结果写入磁盘。
- Parameters:
- path
文件应写入的文件路径。
- compression{‘lz4’, ‘uncompressed’, ‘snappy’, ‘gzip’, ‘lzo’, ‘brotli’, ‘zstd’}
选择“zstd”以获得良好的压缩性能。 选择“lz4”以实现快速的压缩/解压缩。 选择“snappy”以在处理较旧的parquet读取器时获得更多的向后兼容性保证。
- compression_level
使用的压缩级别。更高的压缩意味着磁盘上的文件更小。
“gzip” : 最小级别: 0, 最大级别: 10.
“brotli”:最小级别:0,最大级别:11。
“zstd” : 最小级别: 1, 最大级别: 22.
- statistics
将统计信息写入parquet头部。这是默认行为。
可能的值:
True: 启用默认的统计集合(默认)False: 禁用所有统计信息“full”:计算并写入所有可用的统计信息。不能与
use_pyarrow结合使用。{ "statistic-key": True / False, ... }. 不能与use_pyarrow结合使用。可用的键:“min”: 列的最小值 (默认:
True)“max”: 列的最大值 (默认:
True)“distinct_count”: 唯一列值的数量(默认值:
False)“null_count”: 列中空值的数量(默认值:
True)
- row_group_size
行组的大小,以行数为单位。 如果为None(默认值),则使用
DataFrame的块。 以较小的块写入可能会减少内存压力并提高写入速度。- data_page_size
单个数据页的大小限制。 如果未设置,默认为1024 * 1024字节
- maintain_order
保持数据处理的顺序。 将此设置为
False会稍微快一些。- type_coercion
进行类型强制优化。
- predicate_pushdown
执行谓词下推优化。
- projection_pushdown
执行投影下推优化。
- simplify_expression
运行简化表达式优化。
- slice_pushdown
切片下推优化。
- collapse_joins
将连接和过滤器合并为更快的连接
- no_optimization
关闭(某些)优化。
- storage_options
指示如何连接到云提供商的选项。
目前支持的云提供商有AWS、GCP和Azure。 查看支持的密钥请点击这里:
如果未提供
storage_options,Polars将尝试从环境变量中推断信息。- credential_provider
提供一个可以被调用的函数来提供云存储凭证。该函数预期返回一个包含凭证键的字典以及一个可选的凭证过期时间。
警告
此功能被视为不稳定。它可能会在任何时候更改,而不被视为破坏性更改。
- retries
如果访问云实例失败,重试次数。
- Returns:
- DataFrame
示例
>>> lf = pl.scan_csv("/path/to/my_larger_than_ram_file.csv") >>> lf.sink_parquet("out.parquet")