2015-01-16 5 views
5

मेरे पास एक आरडीडी है जिसमें बाइनरी डेटा है। मैं 'RDD.pipe' को पाइप में उपयोग करना चाहता हूं कि बाइनरी डेटा बाहरी प्रोग्राम में है जो इसे स्ट्रिंग/टेक्स्ट डेटा में अनुवाद करेगा। दुर्भाग्यवश, ऐसा लगता है कि स्पार्क बाइनरी डेटा को बाहरी कार्यक्रम में पारित होने से पहले उलझ रहा है।अपाचे स्पार्क में 'पाइप' बाइनरी डेटा कैसे करें

यह कोड मैं जो करने का प्रयास कर रहा हूं उसका प्रतिनिधि है। मैं क्या गलत कर रहा हूं? मैं स्पार्क में बाइनरी डेटा कैसे पाइप कर सकता हूं?

bin = sc.textFile("binary-data.dat") 
csv = bin.pipe ("/usr/bin/binary-to-csv.sh") 
csv.saveAsTextFile("text-data.csv") 

विशेष रूप से, मैं स्पार्क उपयोग करने के लिए पाठ/सीएसवी को PCAP (पैकेट पर कब्जा) डेटा को बदलने के लिए इतना है कि मैं इस पर एक विश्लेषण प्रदर्शन कर सकते हैं कोशिश कर रहा हूँ।

+0

रुको, क्या आपके पास आरडीडी है जिसमें बाइनरी डेटा है, या क्या आपको इसे बनाने के लिए बाहरी प्रोग्राम चलाने की आवश्यकता है? कार्यक्रम चला रहा है ** एक बार ** आपके पास द्विआधारी डेटा है एक क्लासिक सवाल है। – huitseeker

+0

मेरे पास बाइनरी डेटा है और टेक्स्ट डेटा बनाने की आवश्यकता है। –

+0

हां, लेकिन क्या आपने इसे आरडीडी में लोड करने में कामयाब रहे हैं, क्योंकि आपके प्रश्न की शुरुआत से पता चलता है (लेकिन आपके उत्तर के सुझाव के विपरीत)? – huitseeker

उत्तर

5

समस्या 'पाइप' के उपयोग से नहीं है, लेकिन 'टेक्स्टफाइल' का उपयोग बाइनरी डेटा में पढ़ने के लिए नहीं किया जा सकता है। (दोह) आगे बढ़ने के लिए कुछ विकल्प हैं।

  1. एक कस्टम 'इनपुटफॉर्मैट' लागू करें जो बाइनरी इनपुट डेटा को समझता है। (क्लाउडेरा के शॉन ओवेन को यह इंगित करने के लिए बहुत धन्यवाद।)

  2. संपूर्ण बाइनरी फ़ाइल में एक रिकॉर्ड के रूप में पढ़ने के लिए 'स्पार्ककॉन्टेक्स्ट.बिनरीफाइल' का उपयोग करें। यह प्रदर्शन को प्रभावित करेगा क्योंकि यह फ़ाइल के डेटा पर एक से अधिक मैपर के उपयोग को रोकता है।

मेरी विशिष्ट मामले में # 1 के लिए मैं केवल कि यह करता है एक project from RIPE-NCC पा सकते हैं। दुर्भाग्यवश, ऐसा लगता है कि केवल नेटवर्क प्रोटोकॉल के सीमित सेट का समर्थन करता है।

+0

क्या आप बाइनरी डेटा को कई बाइनरी फाइलों में विभाजित कर सकते हैं? इस तरह बाइनरीफाइल() डिज़ाइन किया गया है। लेकिन मुझे डर है कि फिर भी, एक स्मृति बाधा है जैसा कि http://stackoverflow.com/q/30704814/507544 में उल्लेख किया गया है – nealmcb

संबंधित मुद्दे