मैं एक बड़ी जेएसएसएल फ़ाइल (bzip2 संपीड़ित 17 जीबी) उत्पन्न (और संपीड़ित) उत्पन्न करने के लिए पाइथन bz2 मॉड्यूल का उपयोग कर रहा हूं।क्या बीजी 2 के डिकंप्रेशन को समानांतर करना संभव है?
हालांकि, जब मैं बाद में pbzip2 का उपयोग कर यह केवल विसंपीड़न के लिए एक सीपीयू कोर, जो काफी धीमी है उपयोग करने के लिए लगता है यह संपीड़न हटाने का प्रयास करें।
जब मैं इसे 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()
से मैं क्या डिस्क मैं parallelizing पढ़ा है/ओ एक [बुरा विचार] है (https://stackoverflow.com/a/1993707/3727854)। यह कहा जा रहा है [यह उत्तर प्रासंगिक हो सकता है] (https://stackoverflow.com/a/42012661/3727854) इस प्रश्न के लिए। –
@JamesDraper डिस्क आई/ओ नहीं होगा सीमित कारक हालांकि ... bzip संगणना, धीमी गति से – o11c
नोट @worenga कि jsonl एक खतरनाक स्वरूप है अगर तुम कभी शीर्ष स्तर के नंबरों का उपयोग हो सकता है क्योंकि वे काट-छांट से ग्रस्त हैं। जेसन-सीक एक त्रुटि को अनिवार्य रूप से उस समस्या को हल करता है। – o11c