You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Polars向已有的Parquet文件追加数据

用Polars实现Parquet文件的追加写入

Polars的write_parquet方法默认会覆盖已有文件,要实现追加操作,只需要指定mode="append"参数即可,核心是保证所有待追加的DataFrame与目标Parquet文件的Schema完全一致(列名、数据类型匹配)。

基础实现步骤

  1. 准备多个结构一致的Polars DataFrame
  2. 循环遍历这些DataFrame,使用mode="append"写入目标Parquet文件

示例代码:

import polars as pl

# 构造多个结构相同的DataFrame
df1 = pl.DataFrame({"id": [1, 2], "value": [10, 20]})
df2 = pl.DataFrame({"id": [3, 4], "value": [30, 40]})
df3 = pl.DataFrame({"id": [5, 6], "value": [50, 60]})

# 统一追加写入,即使文件不存在也会自动创建
for df in [df1, df2, df3]:
    df.write_parquet("target.parquet", mode="append")

关键注意事项

  • Schema必须严格匹配:如果待追加的DataFrame列名缺失、类型不匹配,会直接抛出错误。比如目标文件的value列是Int64,追加的DataFrame里value是Float64,就需要先转换类型:
    df = df.with_columns(pl.col("value").cast(pl.Int64))
    
  • 行组追加机制:每次追加的DataFrame会作为一个独立行组写入Parquet文件,读取时Polars会自动合并所有行组,不影响数据查询。
  • 版本兼容性:确保使用的Polars版本在0.18.0及以上,更早版本可能不支持mode参数。

内容的提问来源于stack exchange,提问作者Jahspear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:35:16