首页 > 解决方案 > 如何追加到镶木地板文件以及它如何影响分区?

问题描述

parquet 是否允许定期附加到 parquet 文件?

如果有的话,追加与分区有何关系?例如,如果我能够识别具有低基数的列并按该列对其进行分区,如果我要向其附加更多数据,则镶木地板能够在保留分区的同时自动附加数据,还是必须重新分区文件?

标签: parquetpyarrowfastparquet

解决方案


parquet 是否允许定期附加到 parquet 文件?

是和否。镶木地板规范描述了一种可以通过读取现有页脚、写入行组,然后写出修改后的页脚来附加的格式。这里稍微描述一下这个过程。

当前没有 parquet 实现支持此操作。通过在内存中缓存或写入小文件并稍后将它们批处理在一起,缓存和批处理通常是可以接受的,复杂性更低,并且可能具有更好的性能。

如果有的话,追加与分区有何关系?

Parquet 没有任何分区的概念。

许多支持 parquet 的工具都实现了分区。例如,pyarrow 具有支持分区的数据集功能。如果您要使用此功能附加新数据,则会在相应的分区目录中创建一个新文件。


推荐阅读