Mar*_*ath 11 compression hpc hdf5 h5py pandas
我已多次阅读过在HDF5中打开压缩可以带来更好的读/写性能.
我想知道什么样的理想设置可以在以下方面实现良好的读/写性能:
data_df.to_hdf(..., format='fixed', complib=..., complevel=..., chunksize=...)
Run Code Online (Sandbox Code Playgroud)
我已经在使用fixed
格式(即h5py
),因为它比它更快table
.我有强大的处理器,并不关心磁盘空间.
我经常存储DataFrame
第float64
和str
类型的约文件.2500行×9000列.
Ümi*_*mit 15
您可以使用几种可能的压缩过滤器.从HDF5版本1.8.11开始,您可以轻松注册第三方压缩过滤器.
它可能取决于您的访问模式,因为您可能希望为块定义适当的维度,以便它与您的访问模式良好对齐,否则您的性能将受到很大影响(例如,如果您知道通常访问一列和所有行你应该相应地定义你的块形状(1,9000)
).一些信息,请参见此处,此处和此处.
然而,AFAIK熊猫通常最终会将整个HDF5文件加载到内存中,除非你使用read_table
和iterator
(见这里)或自己做部分IO(见这里),因此并没有真正受益于定义一个好的块大小.
尽管如此,您仍然可以从压缩中受益,因为将压缩数据加载到内存并使用CPU解压缩它可能比加载未压缩数据更快.
我建议你去看看Blosc.它是一个多线程元压缩器库,支持各种不同的压缩过滤器:
它们具有不同的优势,最好的方法是尝试使用您的数据对它们进行基准测试,看看哪种方法效果最好.
归档时间: |
|
查看次数: |
4110 次 |
最近记录: |