本文共 868 字,大约阅读时间需要 2 分钟。
本文的原文连接是: 未经博主允许不得转载。
博主地址是:hdf5在存储的是支持压缩,使用的方式是blosc,这个是速度最快的也是pandas默认支持的。
使用压缩可以提磁盘利用率,节省空间。 开启压缩也没有什么劣势,只会慢一点点。 压缩在小数据量的时候优势不明显,数据量大了才有优势。 同时发现hdf读取文件的时候只能是一次写,写的时候可以append,可以put,但是写完成了之后关闭文件,就不能再写了, 会覆盖。import numpy as npimport pandas as pd#生成9000,0000条数据,9千万条a = np.random.standard_normal((90000000,4))b = pd.DataFrame(a)#普通格式存储:h5 = pd.HDFStore('/data/stock/test_s.h5','w')h5['data'] = bh5.close()#压缩格式存储h5 = pd.HDFStore('/data/stock/test_c4.h5','w', complevel=4, complib='blosc')h5['data'] = bh5.close()
对比文件大小:
-rw-r--r--. 1 root root 2.7G Mar 31 11:20 test_c4.h5-rw-r--r--. 1 root root 3.4G Mar 31 11:19 test_s.h5
省了700mb空间。
本文的原文连接是: 未经博主允许不得转载。
博主地址是:pandas官网有CookBook。
对比CSV文件格式,hdf5支持按照key寻找,可以直接把股票id作为key寻找。比较hdf5是结构化的数据格式,而csv还是个文本。 比数据库方式效果高多了,读写很快。 对于金融,股票系统。还是直接读写文件来的方便。 按照日期和股票id进行两个分区。而且后期迁移的时候直接可以迁移到hadoop 上面,也非常容易呢。