我的问题是为.hdf5文件创建对象类型或文档。该对象将有三个属性,一个id,一个user_id和一个大小为64的布尔数组。我必须创建它们大约10000000(一千万)多个。
想象一下mongodb,我必须像那样使用它们。我必须对某些特定的user_id'ed对象以及所有对象进行查询。
感谢任何建议和帮助。
答案 0 :(得分:0)
我会继续为这个案例使用字典。我觉得词典做得很好。由于查询将在user_id上,我会把它作为密钥。
结构就像
{
'user_id-xyz': {
'id':'id-1212',
'boolarray':[True,False,..],
},
'user_id-abc':{
...
}
}
为了达到这个目的,我可能会选择一个numpy自定义数据类型。
element = np.dtype([('id', 'i16'), ('boolarray', 'b',(64,1))])
f = h5py.File('foo.hdf5','w')
dset = f.create_dataset("blocky", (1000000,), dtype='V79') # 64(bools)+15(for id)
grp = f.create_group("user_id-xyz")
# create subgroups for each id.
subdataset = grp.create_dataset('ele',(1,),dtype=element)
# test of membership.
'user_id-xyz' in f
# retrieval
f.get('user_id-xyz')
# all keys.
f.keys()
总的来说,我希望这可以帮到你。