有没有一种方法可以与 pl.concat 中的“how”参数执行相同的操作,但使用 read_parquet?
我认为你不能通过标准
read_parquet()
来做到这一点,但你可以连接从不同文件创建的数据帧:
import glob
import polars as pl
df_d1 = pl.DataFrame({"a": [1], "b": [3]})
df_d2 = pl.DataFrame({"a": [2], "c": [4]})
df_d1.write_parquet("df1.parquet")
df_d2.write_parquet("df2.parquet")
pl.concat(
(pl.scan_parquet(f) for f in glob.glob("df*.parquet")),
how="diagonal"
).collect()
┌─────┬──────┬──────┐
│ a ┆ b ┆ c │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 │
╞═════╪══════╪══════╡
│ 1 ┆ 3 ┆ null │
│ 2 ┆ null ┆ 4 │
└─────┴──────┴──────┘