所以我从 csv 加载了两个数据集,然后使用
leftjoin
: 合并它们
using CSV
using DataFrames
using CodecZstd
df1 = CSV.read(joinpath(root, "data", "raw", "df1.csv"), DataFrame)
df2 = CSV.read(joinpath(root, "data", "raw", "df2.csv"), DataFrame)
merged = leftjoin(df1, df2, on=:id)
现在我想将合并的数据帧作为
.zst
压缩文件(Zstandard 压缩)写入磁盘。
我成功地首先写入
.csv
,然后读取然后再次写入.zst
,但是有没有办法直接将DataFrame
转换为字节数组以便能够保存到磁盘?
有多种选择。 Julia 内置的功能是序列化数据帧。您可以通过使用
Serialialization
标准库来实现这一点。它提供了两个函数 serialize
用于流的序列化和 deserialize
用于流的反序列化。然后您可以使用CodecZstd.jl压缩序列化流并将其保存到磁盘。
请注意,当您使用序列化时,您有责任确保写入数据和读取数据的 Julia 会话之间的 Julia 和包版本保持一致。