假设我有一个熊猫数据帧df
,我想使用 pyarrow 镶木地板将其作为数据集存储在磁盘上,我会这样做:table = pyarrow.Table.from_pandas(df)
pyarrow.parquet.write_to_dataset(table, root_path=some_path, partition_cols=['a',])
在磁盘上,数据集如下所示:
some_path
├── a=1
____├── 4498704937d84fe5abebb3f06515ab2d.parquet├── a=2
____├── 8bcfaed8986c4bdba587aaaee532370c.parquet
问:在数据集写入过程中,我是否可以以某种方式覆盖长 UUID 作为文件名的自动分配?我的目的是在我有新版本的df
时能够覆盖磁盘上的数据集。目前,如果我尝试再次写入数据集,另一个唯一命名的新 [UUID].parquet 文件将放置在旧文件旁边,具有相同的冗余数据。
对于任何对此问题的开发感兴趣的人,它已从 0.15.0 版本pyarrow
解决,非常感谢开源社区(Jira 问题链接(。
按照问题中使用的示例:
pyarrow.parquet.write_to_dataset(table,
some_path,
['a',],
partition_filename_cb=lambda x:'-'.join(x)+'.parquet')
将生成如下所示的保存数据集:
├── a=1
├── 1.parquet
├── a=2
├── 2.parquet