Python 记录描述符超过16384字节时出现Pytables错误

Python 记录描述符超过16384字节时出现Pytables错误,python,pandas,pytables,Python,Pandas,Pytables,在探索大型新数据集时,我喜欢将整个文件作为字符串数据导入,进行一些打印输出和频率,然后为最后的预处理步骤微调更精确的数据描述 Pytables似乎非常适合这种情况,它支持字符串数据类型。但是,当我向描述中添加足够多的列,使最大行大小超过16384字节时,我收到了一个错误。我已经测试过,通过一次添加一列并创建一个文件,这是导致错误的原因 pytables行可以有最大大小吗?我在文档中找不到任何东西,也找不到增加大小限制(如果存在)的方法 代码: from tables import * # re

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

Pytables似乎非常适合这种情况,它支持字符串数据类型。但是,当我向描述中添加足够多的列,使最大行大小超过16384字节时,我收到了一个错误。我已经测试过,通过一次添加一列并创建一个文件,这是导致错误的原因

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)]'
错误:

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)]'
版本信息:

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)]'

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

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


也许你最好把它分成几个子表。

谢谢,杰夫。我知道如果我给熊猫贴标签,我会得到你宝贵的洞察力。我已经在根据您之前的一个答案制定子表解决方案。