apache-arrow - 我可以添加新列而不重写整个文件吗?

标签 apache-arrow

我一直在尝试 Apache Arrow。我已经使用面向列的内存映射文件很多年了。过去,我为每一列使用单独的文件。 Arrow 似乎喜欢将所有内容存储在一个文件中。有没有办法在不重写整个文件的情况下添加新列?

最佳答案

简短的回答可能是否定的。

Arrow 的内存格式和库支持这一点。您只需创建一个新表即可将分块数组添加到表中(这应该是零拷贝)。

但是,您似乎正在讨论将表存储在文件中。目前使用的常见文件格式(parquet、csv、feather)都不支持以这种方式对表进行分区。

请记住,如果您正在读取 Parquet 文件,您可以指定要读取的列,它只会读取必要的数据。因此,如果您的目标只是支持单个列检索/查询,那么您可以只构建一个包含所有列的大表。

关于apache-arrow - 我可以添加新列而不重写整个文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66163523/

相关文章:

python - 箭头文件大小与 csv 相同吗?

python - 逐行构建 pyarrow 表的最快方法

r - 如何从 R 连接到 HDFS 并使用 arrow 读/写 Parquet ?

python - 如何将巨大的 Pandas 数据框保存到 hdfs?

amazon-s3 - 记录 pyarrow 在 S3 上创建的 Parquet 文件名

r - 从 R 中的 CSV 文件创建 Parquet 文件目录

dataframe - 尝试使用 Arrow.jl 保存 DataFrame 给出 : ArgumentError: type does not have a definite number of fields. 整数元组的元组

R,如何在使用箭头 :open_dataset internally 的函数中将变量名称引用为字符串

r - 箭头 R 持续时间/difftime 转换为 float