Julia: feather格式和hdf5格式比较

听说feather格式比较快,所以引起我的兴趣。我想了解一下,和hdf5相比,谁更快,适合的场景是什么?

using DataFrames
using CSV

csv_path = s"C:\Users\songroom\Desktop\000001.XSHE.csv"
#df = CSV.read(csv_path);
df = @time CSV.File(csv_path) |> DataFrame;

_df =DataFrame()
for i =1:20
    global _df =vcat(_df,df)
end
println("size new df :$(size(_df))")
# write feather file
@time ft_file = Feather.write(s"C:\Users\songroom\Desktop\ft.ft",_df)

# read feather file
ft_path ="C:\\Users\\songroom\\Desktop\\ft.ft";
# ft_path =r"C:\Users\songroom\Desktop\ft.ft";#注意,无法识别!
@time ft = Feather.read(ft_path)

具体的速度,大家可以看到,的确非常快!

1、写
在这里插入图片描述2、读
在这里插入图片描述
二、和hdf5的比较

总体上看,这两种结构速度都比较快,是一个量级。相比而言,feather格式对内容不挑,数值型和字符型处理速度都比较快;大家可以比较一下全数值型可以看看。

但hdf5的优势在数值型;不同的是,feather存放的方式目前没有hdf5多,可以group/dataset.

三、关于数值型

using Feather;
using Tables;
n =5000000
println("生成随机数...")
@time r = randn(10,n);
println("完成随机数据生成")
println("生成table,转成可读的数据格式")
t = Tables.table(r);
println("完成table生成!");
path = s"C:\Users\songrooml\Desktop\r.df"
println("write feather data....")

@time  Feather.write(path,t);
println("完成feather data生成!")

println("read feather data....");
@time  values = Feather.read(path)
println("read over!")

四、文件大小

我手头有一个csv,大约23万行,13列左右;
csv文件:21.1M
feather文件:27.2M
feather文件与hdf5文件差不多,但都要比csv大一些,大20-30%左右。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值