【发布时间】:2021-10-05 07:00:57
【问题描述】:
我尝试使用Arrow.jl 压缩数据。但是,使用下面的代码进行的测试并没有显示出任何尺寸减小(或压缩)。我可以就我的实施寻求建议,比如我做错了什么?
代码:
using CSV, DataFrames, Arrow
df = CSV.read("input_data.csv", DataFrame)
function compress_data(data::DataFrame)
io = Arrow.tobuffer(data)
d = Arrow.Table(io; convert=false)
Arrow.write("output_data.lz4", d; compress=:lz4)
end
compress_data(df)
期待建议。谢谢!
【问题讨论】:
-
您的数据可压缩吗?
-
只有你知道你的数据,所以你必须考虑为什么它可能是可压缩的。值是否限制在一个小范围内?它是一个时间序列,其中后续值接近或与先前值相关?您的测量数据中的数字精度是否远远超过测量精度,因此您可以安全地丢弃仅是噪声的最低有效数字?只有这样,您才能尝试重新排列、转换或截断您的数据,以方便使用 lz4、zlib 等标准工具进行压缩。
-
感谢@OscarSmith 的回复!为迟到的回应道歉!我猜可能涉及多种数据类型,我猜这可能会导致压缩效率低下。
-
感谢@MarkAdler 的回复,非常感谢您的洞察力和建议。我一定会尝试按照建议的方法观察数据!
标签: julia compression apache-arrow lz4