问题描述
我一直在试验 Apache Arrow。我已经使用面向列的内存映射文件很多年了。过去,我为每一列使用了一个单独的文件。 Arrow 似乎喜欢将所有内容都存储在一个文件中。有没有办法在不重写整个文件的情况下添加新列?
解决方法
简短的回答可能是否定的。
Arrow 的内存格式和库支持这一点。您只需创建一个新表(这应该是零拷贝)即可将分块数组添加到表中。
但是,您似乎在谈论将表格存储在文件中。使用的常见文件格式(parquet、csv、feather)都不支持以这种方式对表进行分区。
请记住,如果您正在读取镶木地板文件,您可以指定要读取的列,它只会读取必要的数据。因此,如果您的目标只是支持单个列检索/查询,那么您只需构建一个包含所有列的大表。