在使用pyarrow.parquet编写数据集时,是否可以覆盖文件名的uuid自动分配?



假设我有一个熊猫数据帧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

最新更新