2012-01-25 16 views
5

का उपयोग करके पढ़ा जा सकता है, पीआईजी का उपयोग करके किस प्रकार के फाइल प्रारूप पढ़ा जा सकता है?फ़ाइल प्रारूप जिन्हें पीआईजी

मैं उन्हें विभिन्न प्रारूपों में कैसे स्टोर कर सकता हूं? मान लें कि हमारे पास सीएसवी फ़ाइल है और मैं इसे एमएक्सएल फाइल के रूप में स्टोर करना चाहता हूं यह कैसे किया जा सकता है? जब भी हम STORE कमांड का उपयोग करते हैं तो यह निर्देशिका बनाता है और यह फ़ाइल को part-m-00000 के रूप में संग्रहीत करता है, मैं फ़ाइल का नाम कैसे बदल सकता हूं और निर्देशिका को ओवरराइट कर सकता हूं?

उत्तर

6

पीआईजी का उपयोग करके किस प्रकार के फ़ाइल प्रारूप पढ़ा जा सकता है? मैं उन्हें विभिन्न प्रारूपों में कैसे स्टोर कर सकता हूं?

कुछ built-in loading and storing methods रहे हैं, लेकिन वे सीमित हैं:

  • BinStorage - "बाइनरी" भंडारण
  • PigStorage - भार और दुकानों डेटा है कि कुछ द्वारा सीमांकित किया जाता है (जैसे कि टैब या कॉमा के रूप में)
  • TextLoader - लाइन द्वारा लोड डाटा लाइन (यानी, न्यू लाइन चरित्र से सीमांकित)

piggybank समुदाय की एक लाइब्रेरी उपयोगकर्ता द्वारा परिभाषित कार्यों का योगदान है और इसमें a number of loading and storing methods है, जिसमें एक एक्सएमएल लोडर शामिल है, लेकिन एक्सएमएल स्टोरर नहीं है।


कहते हैं कि हम CSV फ़ाइल है n मैं MXL के रूप में यह स्टोर करने के लिए फ़ाइल यह कैसे किया जा सकता है करना चाहते हैं?

मुझे लगता है तुम यहाँ एक्सएमएल मतलब ... XML में संग्रहीत है कुछ है कि Hadoop में थोड़ा किसी न किसी तरह है, क्योंकि यह एक कम करने के आधार पर फ़ाइलें विभाजन है, तो तुम कैसे जानते हो जहां रूट टैग डाल करने के लिए? यह संभवतः सुव्यवस्थित एक्सएमएल का उत्पादन करने के लिए कुछ प्रकार की पोस्ट-प्रोसेसिंग होनी चाहिए।

एक बात आप कर सकते हैं write a UDF कि एक XML स्ट्रिंग में अपने कॉलम में कनवर्ट करता है:

B = FOREACH A GENERATE customudfs.DataToXML(col1, col2, col3); 

उदाहरण के लिए, col1, col2, col3 क्रमशः "foo", 37, "lemons" कर रहे हैं। आपका यूडीएफ स्ट्रिंग "<item><name>Foo</name><num>37</num><fruit>lemons</fruit></item>" आउटपुट कर सकता है।


जब भी हम स्टोर आदेश का उपयोग यह निर्देशिका बनाता है और यह अंशकालिक एम-00000 के रूप में फ़ाइल को संग्रहीत करता है मैं कैसे फ़ाइल का नाम बदल सकते हैं और निर्देशिका के ऊपर लिख सकता है?

आप आउटपुट फ़ाइल का नाम part-m-00000 के अलावा कुछ और नहीं बदल सकते हैं। यही है कि हाडोप कैसे काम करता है। यदि आप इसका नाम बदलना चाहते हैं, तो आपको hadoop fs -mv output/part-m-00000 newoutput/myoutputfile जैसे कुछ के साथ इस तथ्य के बाद कुछ करना चाहिए। यह एक बैश स्क्रिप्ट के साथ किया जा सकता है जो सुअर स्क्रिप्ट चलाता है और फिर इस आदेश को निष्पादित करता है।

+0

धन्यवाद बहुत :) –

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