我一直在尝试 Apache Arrow。我已经使用面向列的内存映射文件很多年了。过去,我为每一列使用单独的文件。 Arrow 似乎喜欢将所有内容存储在一个文件中。有没有办法在不重写整个文件的情况下添加新列?
最佳答案
简短的回答可能是否定的。
Arrow 的内存格式和库支持这一点。您只需创建一个新表即可将分块数组添加到表中(这应该是零拷贝)。
但是,您似乎正在讨论将表存储在文件中。目前使用的常见文件格式(parquet、csv、feather)都不支持以这种方式对表进行分区。
请记住,如果您正在读取 Parquet 文件,您可以指定要读取的列,它只会读取必要的数据。因此,如果您的目标只是支持单个列检索/查询,那么您可以只构建一个包含所有列的大表。
关于apache-arrow - 我可以添加新列而不重写整个文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66163523/