记录描述符超过16,384字节时的Pytables错误

时间:2014-04-07 14:54:01

标签: python pandas pytables

在探索大型新数据集时,我想将整个文件作为字符串数据导入,执行一些打印输出和频率,然后为最终的预处理步骤微调更准确的数据描述。

Pytables似乎是理想的,它支持字符串数据类型。但是,当我在描述中添加足够的列以使最大行大小超过16,384字节时,我收到了错误。我已经通过一次添加一个列并创建h5文件来测试这是导致错误的。

pytables行可以有最大大小吗?我在文档中找不到任何内容,也没有办法增加大小限制(如果存在)。

代码:

from tables import *

# record descriptor
class Record(IsDescription):
     var1 = StringCol(16)
     var2 = StringCol(16)
     var3 = StringCol(16)
     var4 = StringCol(16)
     ...
     varN = StringCol(16)


h5file = open_file("test.h5", mode="w", title="Test file")

group = h5file.create_group("/", 'Test', 'Test group')

table = h5file.create_table(group, 'Test', Record, 'Test example')

错误:

HDF5ExtError: Problems creating the table

版本信息:

In [0]: tables.__version__
Out[0]: '3.1.0'

In [1]: sys.version
Out[1]: '2.7.6 |Anaconda 1.9.1 (64-bit)| (default, Nov 11 2013, 10:49:15) [MSC v.1500 64 bit (AMD64)]'

1 个答案:

答案 0 :(得分:3)

以下是我所知道的一个限制,每行512列(虽然它表示可以更改,但不确定是否需要重新编译),请参阅here

我不知道每行的字节数限制是否是HDF5硬限制。 (虽然我怀疑它是;它们是各种硬限制,例如每组64KB的元数据)。这些允许固定大小的HDF5文件布局,以获得良好的性能。

也许只是拆分成几个子表是最好的选择。