0

multiindex .h5 ファイルを作成し、HDFStore を使用してデータを保存します。ただし、ファイルからデータフレームを読み取ろうとすると、一部のデータフレームは正常に読み取ることができますが、他のいくつかは読み取ることができません。以下は私が得るエラーメッセージです:

HDF5-DIAG: HDF5 (1.8.9) スレッド 0 でエラーが検出されました: #000: H5Dio.c H5Dread() の 174 行目: データを読み取れません メジャー: データセット マイナー: 読み取りに失敗しました

#001: H5Dio.c H5D_read() の 449 行目: データを読み取れません メジャー: データセット マイナー: 読み取りに失敗しました

#002: H5Dcontig.c H5D_contig_read() の 560 行目: 連続読み取り失敗 メジャー: データセット マイナー: 読み取り失敗

#003: H5Dselect.c H5D_select_read() の 275 行目: 読み取りエラー メジャー: データスペース マイナー: 読み取りに失敗しました

#004: H5D_select_io() の H5Dselect.c 行 210: 読み取りエラー メジャー: データスペース マイナー: 読み取りに失敗しました

#005: H5D_contig_readvv() の H5Dcontig.c 行 890: ベクトル化されたふるいバッファの読み取りを実行できません メジャー: データセット マイナー: オブジェクトを操作できません

#006: H5V_opvv() 内の H5V.c 行 1457: 操作を実行できません メジャー: 内部エラー (ドキュメントの詳細に固有すぎる) マイナー: オブジェクトを操作できません

#007: H5D_contig_readvv_sieve_cb() の H5Dcontig.c 行 691: ブロックの読み取りに失敗しました major: データセットのマイナー: 読み取りに失敗しました

#008: H5Fio.c H5F_block_read() の 113 行目: メタデータ アキュムレータの読み取りに失敗しました メジャー: 低レベル I/O マイナー: 読み取りに失敗しました

#009: H5Faccum.c H5F_accum_read() の 254 行目: ドライバーの読み取り要求が失敗しました メジャー: 低レベル I/O マイナー: 読み取りに失敗しました

#010: H5FDint.c H5FD_read() の 142 行目: ドライバーの読み取り要求が失敗しました major: Virtual File Layer minor: Read failed

#011: H5FDsec2.c H5FD_sec2_read() の 753 行目: ファイルの読み取りに失敗しました: 時間 = Wed Jul 3 14:07:31 2013

、ファイル名 = 'N.h5'、ファイル記述子 = 3、errno = 5、エラー メッセージ = '入出力エラー'、buf = 0x7f8807fccb6c、サイズ = 649492、オフセット = 185876480

major: Low-level I/O

minor: Read failed

トレースバック (最新の呼び出しが最後):

ファイル ""、1 行目、

ファイル "/usr/share/python27/lib/python2.7/site-packages/pandas/io/pytables.py"、165 行目、getitem内

return self.get(key)

ファイル「/usr/share/python27/lib/python2.7/site-packages/pandas/io/pytables.py」、261行目、get

return self._read_group(group)

ファイル "/usr/share/python27/lib/python2.7/site-packages/pandas/io/pytables.py"、651 行目、_read_group でハンドラーを返す (グループ、場所)

ファイル "/usr/share/python27/lib/python2.7/site-packages/pandas/io/pytables.py"、400 行目、_read_frame で DataFrame(self._read_block_manager(group)) を返す

ファイル "/usr/share/python27/lib/python2.7/site-packages/pandas/io/pytables.py"、426 行目、_read_block_manager ax = self._read_index(group, 'axis%d' % i)

ファイル "/usr/share/python27/lib/python2.7/site-packages/pandas/io/pytables.py"、487 行目、_read_index _ 内、index = self._read_index_node(getattr(group, key))

ファイル「/usr/share/python27/lib/python2.7/site-packages/pandas/io/pytables.py」、532 行目、_read_index_node data = node[:]

ファイル "/usr/share/python27/lib/python2.7/site-packages/tables/array.py"、684 行目、 getitem arr = self._readSlice(startl, stopl, stepl, shape) 内

ファイル "/usr/share/python27/lib/python2.7/site-packages/tables/array.py"、781 行目、_readSlice self._g_readSlice(startl, stopl, stepl, nparr) 内

ファイル "hdf5Extension.pyx"、1092 行目、tables.hdf5Extension.Array._g_readSlice (tables/hdf5Extension.c:9570) 内の tables.exceptions.HDF5ExtError: 配列データの読み取りに問題があります。

誰でもこの問題を解決できますか? どうもありがとう。

4

2 に答える 2

0

うーん、HDF5 ライブラリは、スレッドセーフな設定オプション (--enable-threadsafe) を有効にしてコンパイルされていないようです。また、異なるプロセスから同時に同じファイルに書き込んでいる場合、それは機能しません。ファイルを閉じて、他のプロセスから再度開く必要があります。

ここで HDF5 FAQ を参照してください: http://www.hdfgroup.org/hdf5-quest.html#gconc

于 2013-07-21T03:00:37.247 に答える