我正在寻找在多处理环境中读取的hdf5的线程安全替代方案,并偶然发现zarr,根据基准测试,它基本上是python环境中h5py的直接替代品。
我尝试了一下,到目前为止一切看起来不错,但是我无法绕过奇怪输出的文件数量。
如果我用h5py写入h5文件,只会得到一个文件,而zarr似乎会在子文件夹中输出随机数量的文件。
有人会向我解释为什么会这样吗,以及所创建文件的确切数量取决于什么?
预先感谢
答案 0 :(得分:1)
Zarr通常将键(特定的块索引)映射到表示该块数据的值(二进制Blob)。如果使用DirectoryStore
,则会导致将许多不同的文件写入磁盘。看到的文件数量取决于您的数组有多少块以及哪些包含不平凡的内容(例如非零值)。