2014-04-08 10 views
6

मैं सरल फ़ाइल लोड करने की कोशिश कर रहा हूँ:क्या सुअर में कोई फ़ाइल त्रुटि प्रबंधित करना संभव है?

log = load 'file_1.gz' using TextLoader AS (line:chararray); 
dump log 

और मैं कोई त्रुटि मिलती है:

2014-04-08 11:46:19,471 [main] ERROR org.apache.pig.tools.pigstats.SimplePigStats - ERROR 2997: Unable to recreate exception from backend error: org.apache.pig.backend.executionengine.ExecException: ERROR 2118: Input Pattern hdfs://hadoop1:8020/pko/file*gz matches 0 files 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat.getSplits(PigInputFormat.java:288) 
     at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:1054) 

ऐसी स्थिति का प्रबंधन करने से पहले त्रुटि दिखाई देती है संभव है है?

+0

पावेल, क्या आपको यह पता चल गया कि इसे कैसे संभाला जाए? यहां तक ​​कि मेरे पास एक ही परिदृश्य है। धन्यवाद – Learner

+0

वही है। मैंने भी कई नियमित अभिव्यक्तियों की कोशिश की। जब तक यह "0 फाइलें" –

उत्तर

0

इनपुट पैटर्न HDFS: // hadoop1: 8020/PKO/फ़ाइल * GZ 0 फ़ाइलों

से मेल खाता त्रुटि इनपुट फ़ाइल दिया HDFS पथ में मौजूद नहीं है।

लॉग = लोड 'file_1.gz' टेक्स्टलोडर एएस (लाइन: chararray) का उपयोग कर लोड करें; जैसा कि आपने file_1.gz के पूर्ण पथ का उल्लेख नहीं किया है, यह उस उपयोगकर्ता के होम एचडीएफएस डीआईआर को ले जाएगा जिसके साथ आप अपनी पिग-स्क्रिप्ट

+0

लौटाता है तब तक कोई भी काम नहीं करता है, मुझे त्रुटि का कारण पता है। लेकिन मेरा सवाल यह है: क्या पिग में इस तरह की त्रुटियों का प्रबंधन करना संभव है। कोशिश करने की तरह कुछ। –

0

दुर्भाग्य से पिग (0.15.0) के वर्तमान संस्करण में यूडीएफ के उपयोग किए बिना इन त्रुटियों को प्रबंधित करना असंभव है।

मैं इस बात की देखभाल करने के लिए प्रयास और पकड़ का उपयोग करके जावा या पायथन लिपि बनाने का सुझाव देता हूं। https://wiki.apache.org/pig/PigErrorHandlingInScripts

गुड लक सीखने सुअर:

यहां एक अच्छी वेबसाइट है कि आप करने के लिए कुछ काम का हो सकता है!

+1

क्या आप अपनी वेबसाइट का उल्लेख कर सकते हैं? –

0

मुझे इस मुद्दे का भी सामना करना पड़ रहा है। मेरे भार आदेश है:

DATA = LOAD '${qurwf_folder_input}/data/*/' AS (...); 

मैं डेटा सब-फ़ोल्डरों के सभी फ़ाइलों को लोड करना चाहते हैं, लेकिन डेटा फ़ोल्डर खाली है और मैं तुम्हें के रूप में ही त्रुटि मिली। मैंने अपने विशेष मामले में डेटा निर्देशिका में एक खाली फ़ोल्डर बनाना था। तो LOAD एक खाली डेटासेट देता है और स्क्रिप्ट विफल नहीं हुई है।

वैसे, मैं स्क्रिप्ट चलाने के लिए ओज़ी वर्कफ़्लो का उपयोग कर रहा हूं, और तैयार में, मैं खाली फ़ोल्डर्स बना देता हूं।

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