2016-06-05 6 views
0

나는 매우 혼란 스럽다. 나는 같은 노트북 서버에서 두 개의 스크립트를 실행하고있다. HDFStore가 같은 폴더에 있지만 한 스크립트의 경우 비어있는 것처럼 보이고 다른 스크립트는 그렇지 않습니다.팬더 HDFStore 이상한 행동

import os 
os.getcwd() 

돌아 NB 1 : 다음은 동일한 코드를 모두 노트북에서 실행되는 'E가 : \ DoingDataScience \ 확인 \ 스크립트'

돌아 NB 2 : 'E : \ DoingDataScience \ 확인 \ 스크립트'

store = pd.HDFStore('data_test.h5') 
store.items 

복귀 NB 1

<bound method HDFStore.items of <class 'pandas.io.pytables.HDFStore'> 
File path: data_test.h5 
/test_database   frame  (shape->[3,5])> 

복귀 NB 2

<bound method HDFStore.items of <class 'pandas.io.pytables.HDFStore'> 
File path: data_test.h5 
Empty> 

모든 상황이 동일하게 보입니다. 팬더 스 DF의 출처를 추적합니까? NB 1이 파일을 만들었 기 때문에 파일이 이미 NB 1에 의해 열리고있는 것 같았습니다. 그러나 NB 1을 죽이고 NB 2를 재시작해도 아무 것도 할 수 없었습니다.

편집 : 추가 os.stats :

NB 1과 NB 2 모두 :

nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0L, st_nlink=0, 
st_uid=0, st_gid=0, st_size=1311400L, st_atime=1465072325L, 
st_mtime=1465149771L, st_ctime=1465072325L) 

업데이트 : 지금은 새로운 오류 받고 있어요 다시 시작한 후 :

HDF5ExtError : HDF5 오류 , H5Fopen 라인 (604), 파일 파일을 열 수 없습니다 "C : \ A : 다시

파일"\ aroot \ 작업 \ hdf5-1.8.15-PATCH1 \ SRC \ H5F.c C "를 추적 루트 \ work \ hdf5-1.8.15-patch1 \ src \ H5Fint.c ", 줄 1085, H5F_open에서 수퍼 블록을 읽을 수 없습니다 파일"C : \ aroot \ work \ hdf5-1.8.15-patch1 \ src \ H5Fsuper .c ", 294 행의 H5F_super_read에서 수퍼 블록을로드 할 수 없습니다. H5AC_protectH5C_protect() 파일에서"C : \ aroot \ work \ hdf5-1.8.15-patch1 \ src \ H5AC.c "파일의 1320 줄에 실패했습니다. 파일 "C : \ aroot \ work \ hdf5-1.8.15-patch1 \ src \ H5C.c", 줄 3574, H5C_protect 파일 "C : \ aroot \ work \ hdf5-1.8을로드 할 수 없습니다. 15 패치 1 \ src \ H5C.c ", 줄 7954, H5C_load_entry에 파일"C : \ aroot \ work \ hdf5-1.8.15-patch1 \ src \ H5Fsuper_cache.c "파일 476 줄을로드 할 수 없습니다. H5F_sblock_load 잘린 파일 : EOF = 800, sblock-> base_addr에 = 0, stored_eoa = 1181448

HDF5 오류 종료 다시 파일을 만듭니다 'data_test.h5'

+0

각각의 경우에 HDStore의 파일 위치를 인쇄 할 수 있습니까? 정말 같은 파일일까요? – BrenBarn

+0

어떻게 얻을 수 있습니까? store.filename은 경로가 아닌 이름을 반환합니다. –

+0

두 노트북 모두에서'os.stat ('data_test.h5')'의 출력을 게시 할 수 있습니까? 파일이 하나의 NB에서 열려있을 때 잠글 수 없습니다. – MaxU

답변

2

대부분의 probabl을 열고/수

수 없습니다 추적 당신은 당신의 데이터 NB1의 세션에서

/test_database   frame  (shape->[3,5])> 

를 작성했습니다 당신이 당신의 h5 파일을 열 때 그래서 store (저장하고 파일의 변경 내용을 플러시 것/디스크)

을 닫지 않았다 Y NB2, 그것은 아직 씻겨지지 않았기 때문에 비어있었습니다.

+0

어떻게 디스크에 변경 사항을 저장하고 플러시합니까? 나는'df.to_hdf (path, ...)'를 사용할 때 비슷한 오류가 발생합니까? –