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

标签 python vega-lite apache-arrow

我正在尝试将数据帧保存为 .arrow 格式,主要是为了获得比 CSV 更好的大小,以便将该文件用于 vega-lite

我正在使用Python

import pandas
import pyarrow as pa
csv="C:/Users/mimoune.djouallah/data.csv"
arrow ="C:/Users/mimoune.djouallah/file.arrow"
dataset = pandas.read_csv(csv)

table = pa.Table.from_pandas(dataset)
writer = pa.RecordBatchFileWriter(arrow, table.schema)
writer.write(table)
writer.close()

我原本期望箭头文件小于 csv,但现在箭头稍大

我尝试使用 parquet 导出,结果符合预期

原始 csv:4.4 MB 箭头:4.9 MB Parquet :1.6 MB PowerBI(仅供引用):1.7 MB

最佳答案

Arrow格式的目的不是优化存储大小,而是优化存储性能。与 CSV 相比,数据以二进制形式存储,以消除解析数据的开销。但由于性能至关重要,因此数据既不压缩也不编码。

如果您想高效地存储数据但数据量较小,您应该看看 Apache Parquet。数据的存储方式与 Arrow 类似,但采用了一些有效的技术来减少存储大小。

关于python - 箭头文件大小与 csv 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55429458/

相关文章:

python - 将 ASCII 输出转换为 UTF-8

python - django-background-tasks 缺少数据库表

powerbi - 在 Vega-Lite (Deneb) 中设置动态域

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

java - 如何使用 apache arrow 在 java 中编写 Parquet 文件

c++ - 尝试编译简单测试程序时 CMake 失败

python - 如何使用 matplotlib 从数据帧创建简单的动画图

python - 将 caffe 模型 (VGG_Face2) 转换为 coreml 时出错

vega - 将 Vega 交互式可视化导出到 PowerPoint 的简单方法(并保持交互性)

visualization - vega 在图表下方添加自定义条形图