पर लिखना मैं लाखों पंक्तियों और 100+ स्तंभों के साथ ओरेकल डेटाबेस के साथ काम कर रहा हूं। मैं इस डेटा को एचडीएफ 5 फाइल में संग्रहीत कुछ कॉलम के साथ pytables का उपयोग करके स्टोर करने का प्रयास कर रहा हूं। मैं इन डेटा के सबसेट को पांडा डेटाफ्रेम में और कंप्यूटेशंस कर रहा हूं।ओरेकल से लाखों पंक्तियों के साथ एक बड़ी तालिका पढ़ना और एचडीएफ 5
मैं का प्रयास किया है निम्नलिखित:
डाउनलोड मेज, एक csv फ़ाइल में एक सुविधा का उपयोग, पांडा का उपयोग कर हिस्सा द्वारा csv फ़ाइल हिस्सा पढ़ सकते हैं और pandas.HDFStore
का उपयोग कर HDF5 मेज पर जोड़ देते हैं। मैंने एक प्रकार की परिभाषा बनाई और अधिकतम स्ट्रिंग आकार प्रदान किए।
हालांकि, अब जब मैं सीधे ओरेकल डीबी से डेटा डाउनलोड करने की कोशिश कर रहा हूं और इसे pandas.HDFStore
के माध्यम से एचडीएफ 5 फ़ाइल में पोस्ट कर रहा हूं, तो मैं कुछ समस्याओं में भाग लेता हूं।
pandas.io.sql.read_frame खंडित पढ़ने का समर्थन नहीं करता है। मेरे पास संपूर्ण डेटा को पहले स्मृति में डाउनलोड करने में सक्षम होने के लिए पर्याप्त RAM नहीं है।
यदि मैं cursor.fecthmany()
का उपयोग निश्चित रिकॉर्ड्स के साथ करने का प्रयास करता हूं, तो पढ़ने के ऑपरेशन को डीबी तालिका में उम्र लगती है और मुझे दिनांक सीमा के अंतर्गत आने वाले रिकॉर्ड पढ़ना पड़ता है। मैं DataFrame(cursor.fetchmany(), columns = ['a','b','c'], dtype=my_dtype)
का उपयोग कर रहा हूं, हालांकि, निर्मित डेटाफ्रेम हमेशा प्रदान किए गए प्रकार को लागू करने के बजाय टाइप प्रकार का अनुमान लगाता है (read_csv के विपरीत जो मेरे द्वारा प्रदान किए गए प्रकार का पालन करता है)। इसलिए, जब मैं इस डेटाफ्रेम को पहले से मौजूद HDFDatastore
पर जोड़ता हूं, तो उदाहरण के लिए एक प्रकार का मेल नहीं है एक फ्लोट 64 शायद एक खंड में int64 के रूप में व्याख्या की जाएगी।
यदि आप लोग अपने विचार पेश कर सकते हैं और मुझे सही दिशा में इंगित कर सकते हैं तो सराहना करें।
आपका वर्तमान दृष्टिकोण (एक सीएसवी के साथ) और टाइप प्रकार सुधार सही है। एसक्यूएल को 0.14 में एक बड़ा अपडेट मिलेगा (0.13 जल्द ही रिलीज़ हो रहा है)। तो दुर्भाग्यवश dtype संक्रमण/चंकिंग उपलब्ध नहीं है। आपका स्वागत है पीआरएस हालांकि! इस समस्या को देखें: https://github.com/pydata/pandas/issues/4163 – Jeff
मैं ओरेकल टैग को हटाने का सुझाव देता हूं जब तक कि आपको चीजों के ओरेकल पक्ष पर कोई समस्या न हो। –
आपको तालिका को एक श्रेणी विभाजित ऑब्जेक्ट में कनवर्ट करने के लिए अपने डीबीए से पूछना चाहिए, उसके बाद विभाजन – klashxx