मैं जिसके साथ मैं के लिए~ 50GB सीएसवी के प्रकाश प्रसंस्करण फ़ाइल
- सीएसवी
- के स्तंभों में से कई सबसेट ले लो करने के लिए एक अलग प्रारूप स्ट्रिंग विनिर्देश लागू करें एक ~ 50GB csv फ़ाइल है बढ़ाता है सीएसवी के कॉलम के प्रत्येक सबसेट।
- प्रत्येक उपसेट के लिए अपने स्वयं के प्रारूप विनिर्देश के साथ आउटपुट एक नया सीएसवी आउटपुट।
मैं पांडा उपयोग करने के लिए, और (सिर्फ पांच लाख से अधिक एक लाइनों की) एक आसान हिस्सा आकार का हिस्सा अधिक पुनरावृत्ति एक DataFrame निर्माण करने के लिए, और प्रत्येक उत्पादन CSV में हिस्सा जोड़कर की एक सामान्य दृष्टिकोण का विकल्प चुना। इस तरह तो कुछ:
_chunk_size = 630100
column_mapping = {
'first_output_specification' : ['Scen', 'MS', 'Time', 'CCF2', 'ESW10'],
# ..... similar mappings for rest of output specifications
}
union_of_used_cols = ['Scen', 'MS', 'Time', 'CCF1', 'CCF2', 'VS', 'ESW 0.00397', 'ESW0.08',
'ESW0.25', 'ESW1', 'ESW 2', 'ESW3', 'ESW 5', 'ESW7', 'ESW 10', 'ESW12',
'ESW 15', 'ESW18', 'ESW 20', 'ESW22', 'ESW 25', 'ESW30', 'ESW 35',
'ESW40']
chnk_iter = pd.read_csv('my_big_csv.csv', header=0, index_col=False,
iterator=True, na_filter=False, usecols=union_of_used_cols)
cnt = 0
while cnt < 100:
chnk = chnk_iter.get_chunk(_chunk_size)
chnk.to_csv('first_output_specification', float_format='%.8f',
columns=column_mapping['first_output_specification'],
mode='a',
header=True,
index=False)
# ..... do the same thing for the rest of the output specifications
cnt += 1
मेरे समस्या कि इस वास्तव में धीमी है। प्रत्येक खंड में सीएसवी फाइलों में संलग्न होने के लिए लगभग एक मिनट लगते हैं, और इस प्रकार मैं कार्य को पूरा करने के लिए लगभग 2 घंटे देख रहा हूं।
मैंने सीएसवी में पढ़ते समय कॉलम सबसेट के संघ का उपयोग करके कुछ अनुकूलन करने की कोशिश की है, साथ ही साथ na_filter=False
सेटिंग भी की है, लेकिन यह अभी भी स्वीकार्य नहीं है।
मैं सोच रहा था कि पाइथन में एक सीएसवी फ़ाइल की इस प्रकाश प्रसंस्करण को करने का कोई तेज़ तरीका है या तो मेरे दृष्टिकोण में अनुकूलन या सुधार के माध्यम से या शायद इस तरह के काम के लिए उपयुक्त एक बेहतर टूल है तो पांडस ... मेरे लिए (एक अनुभवहीन पांडस उपयोगकर्ता) ऐसा लगता है कि यह पांडों के साथ जितना तेज़ हो सकता है, लेकिन मैं बहुत गलत हो सकता हूं।
क्या डेटाबेस दृष्टिकोण पर स्विच करना संभव है? यह एक बड़ी सीएसवी फ़ाइल है! –
@Jylo मैं वास्तव में चाहता हूं कि मामला था, लेकिन नहीं। –
क्या 'chunksize' में पंक्तियों की संख्या शामिल है जो आप प्रत्येक खंड में रखना चाहते हैं? – albert