हमारे पास बहुत बड़ी फ़ाइलें हैं, कच्चे डेटा के साथ 1-1.5 जीबी संयुक्त (ज्यादातर लॉग फाइल) का क्रम जो आसानी से एक सीएसवी के लिए पारदर्शी है, जिसे बाद में उत्पन्न करने के लिए तैयार किया जाना चाहिए ग्राफ छवियों का एक सेट।बड़ी फ़ाइलों से पढ़ने वाले डेटा को पढ़ने और ग्राफिंग
वर्तमान में, हम कच्चे डेटा को एक सीएसवी फ़ाइल में बदलने के लिए बैश स्क्रिप्ट का उपयोग कर रहे हैं, केवल उन संख्याओं के साथ जिन्हें ग्रेन किया जाना चाहिए, और फिर इसे एक gnuplot स्क्रिप्ट में खिलााना। लेकिन यह प्रक्रिया बेहद धीमी है। मैंने कुछ पाइप cut
एस, tr
एस आदि को प्रतिस्थापित करके awk
कमांड के साथ बैश स्क्रिप्ट को गति देने की कोशिश की, हालांकि यह गति में सुधार हुआ, पूरी बात अभी भी बहुत धीमी है।
तो, मुझे विश्वास है कि इस प्रक्रिया के लिए बेहतर उपकरण हैं। मैं वर्तमान में पाइथन + numpy या आर में इस प्रक्रिया को फिर से लिखना चाहता हूं। मेरा एक दोस्त JVM का उपयोग करने का सुझाव देता है, और यदि मैं ऐसा करना चाहता हूं, तो मैं क्लोजर का उपयोग करूंगा, लेकिन मुझे यकीन नहीं है कि JVM कैसे करेगा।
मुझे इस तरह की समस्याओं से निपटने में ज्यादा अनुभव नहीं है, इसलिए आगे बढ़ने के बारे में कोई सलाह बहुत अच्छी होगी। धन्यवाद।
संपादित करें: इसके अलावा, मैं जेनरेट किए गए इंटरमीडिएट डेटा, यानी, सीएसवी को (डिस्क पर) स्टोर करना चाहता हूं, इसलिए मुझे इसे फिर से उत्पन्न करने की ज़रूरत नहीं है, क्या मुझे चुनना चाहिए कि मैं एक अलग दिखने वाला ग्राफ चाहता हूं ।
संपादित करें 2: कच्चे डेटा फ़ाइलों में एक प्रति पंक्ति एक रिकॉर्ड होता है, जिनके फ़ील्ड एक डिलीमीटर (|
) से अलग होते हैं। सभी फ़ील्ड संख्याएं नहीं हैं। इनपुट सीएसवी में मुझे आवश्यक प्रत्येक फ़ील्ड इनपुट रिकॉर्ड पर एक निश्चित सूत्र लागू करके प्राप्त किया जाता है, जो इनपुट डेटा से कई फ़ील्ड का उपयोग कर सकता है। आउटपुट सीएसवी में प्रति पंक्ति 3-4 फ़ील्ड होंगे, और मुझे उन ग्राफों की आवश्यकता है जो 1-2, 1-3, 1-4 फ़ील्ड को एक (हो सकता है) बार चार्ट में प्लॉट करें। मुझे उम्मीद है कि एक बेहतर तस्वीर देता है।
संपादित करें 3: मैंने @ एडीरौ की लिपि को थोड़ा सा संशोधित किया है और ऐसा लगता है कि यह बहुत अच्छी तरह से काम कर रहा है। मैं इतनी दूर आ गया हूं कि मैं डेटा पढ़ रहा हूं, प्रोसेसर थ्रेड्स (छद्म प्रसंस्करण, डेटा में थ्रेड नाम जोड़ना) के पूल में भेज रहा हूं, और इसे कलेक्टर थ्रेड के माध्यम से आउटपुट फ़ाइल में जोड़ रहा हूं।
पीएस: मुझे इस प्रश्न की टैगिंग के बारे में निश्चित नहीं है, इसे ठीक करने के लिए स्वतंत्र महसूस करें।
उस आकार की फ़ाइलों के साथ आर मुश्किल हो सकती है, क्योंकि यह स्मृति-गहन है। आर की ग्राफिकल संभावनाएं पाइथन की तुलना में अधिक होती हैं (उदाहरण के लिए http://addictedtor.free.fr/graphiques/) देखें। सुनिश्चित करें कि आप आर (पैकेज बर्फबारी) में multithreading की जांच करें। लेकिन सबसे अधिक, कोड जिसमें आप परिचित हैं। यदि आप आर से बहुत परिचित नहीं हैं, तो इसे अनुकूलित करना मुश्किल होगा। –
हां, यह भी एक और बिंदु है, मुझे आर में कोई अनुभव नहीं है, और numpy और matplotlib के साथ ही, लेकिन मैं अजगर के साथ बहुत सहज हूं। यह भी मेरी पसंद को प्रभावित करेगा। –