나는 pythons bz2 모듈을 사용하여 큰 jsonl 파일 (bzip2 압축 17GB)을 생성 (압축)합니다.bz2의 압축 해제를 병렬화 할 수 있습니까?
그러나 나중에 pbzip2를 사용하여 압축을 풀려고하면 CPU 코어를 사용하는 것으로 보이는데 이는 상당히 느립니다.
내가 pbzip2로 압축하면 압축 해제시 여러 코어를 활용할 수 있습니다. 파이썬에서 pbzip2 호환 형식으로 압축하는 방법이 있습니까?
import bz2,sys
from Queue import Empty
#...
compressor = bz2.BZ2Compressor(9)
f = open(path, 'a')
try:
while 1:
m = queue.get(True, 1*60)
f.write(compressor.compress(m+"\n"))
except Empty, e:
pass
except Exception as e:
traceback.print_exc()
finally:
sys.stderr.write("flushing")
f.write(compressor.flush())
f.close()
내가 디스크 I/O를 병렬화하는 것을 읽은 것은 [나쁜 생각] (https://stackoverflow.com/a/1993707/3727854)입니다. 이 질문에 [이 답변은 관련이있을 수 있습니다.] (https://stackoverflow.com/a/42012661/3727854)라고합니다. –
@JamesDraper 디스크 입출력은 제한 요소가되지 않습니다 ... bzip 계산 속도가 느립니다. – o11c
@worenga jsonl은 절삭하기 쉽기 때문에 최상위 숫자를 사용하는 경우 위험한 형식입니다. Json-seq은 오류를 명령하여 문제를 해결합니다. – o11c