2014-09-23 7 views
5

से एक सीएसवी पढ़ने में तालिका बनाने में असमर्थ, एचडीएफएस से .csv फ़ाइल को पढ़कर हाइव में एक टेबल बनाते समय मुझे समस्याएं हैं। क्वेरी नीचेएचडीएफएस

क्वेरी बनाएं बाहरी टेबल testmail है (memberId स्ट्रिंग, ईमेल स्ट्रिंग, sentdate स्ट्रिंग, actiontype स्ट्रिंग, actiondate स्ट्रिंग, campaignid स्ट्रिंग, CAMPAIGNNAME स्ट्रिंग) पंक्ति प्रारूप सीमांकित मैदान इन्हें समाप्त ',' स्थिति '/ user/Hadoop/क्लाउडेरा/ameeth/ca_email.csv ';

त्रुटि प्राप्त हो रही है। मेटाडाटा में त्रुटि: MetaException

किसी भी एक मुझे इस में मदद कर सकते हैं (संदेश: HDFS: // पीसी 8020/उपयोगकर्ता/Hadoop/क्लाउडेरा/ameeth/ca_email.csv एक निर्देशिका या एक बनाने में असमर्थ नहीं है)। असल में मैं एक एसएसएल फाइल में ऐसे स्टेमेंट्स को नौकरी के रूप में चलाने के लिए

उत्तर

7

हाइव LOCATION में निर्दिष्ट निर्देशिका में सभी फ़ाइलों को उठाता है। आपको फ़ाइल नाम निर्दिष्ट करने की आवश्यकता नहीं है।

यह काम करना चाहिए:

CREATE EXTERNAL TABLE testmail (memberId String , email String, sentdate String,actiontype String, actiondate String, campaignid String,campaignname String) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/hadoop/cloudera/ameeth'; 
+0

धन्यवाद यह काम कर रहा है। लेकिन अगर मैं इसे निम्नलिखित प्रारूप में देता हूं तो त्रुटि –

+1

बाहरी तालिका टेस्टमेल (सदस्य आईडी स्ट्रिंग, ईमेल स्ट्रिंग, भेजे गए स्ट्रिंग, एक्शनटाइप स्ट्रिंग, एक्शनडेट स्ट्रिंग, एक्टिविटी स्ट्रिंग, अभियान नाम स्ट्रिंग) को फेंक रहा है, 'आरओएम फॉर्मेटेड' फ़ील्ड, ',' द्वारा निर्धारित; लोड डेटा स्थानीय INPATH '/user/hadoop/cloudera/ameeth/ca_email.csv' तालिका टेस्टमेल में; –

+0

विफल: सेमेन्टिक एक्सेप्शन लाइन 1:17 अमान्य पथ '/user/hadoop/cloudera/ameeth/ca_email.csv' ': पथ एचडीएफएस से मेल खाने वाली कोई भी फाइल इस त्रुटि को –

0

इस पथ

करने के लिए जाना क्लाउडेरा में अपने metastore_db फ़ोल्डर खोजने के लिए और * .lck फ़ाइलों

हटाने

आदेश sudo rm/FOLDER_PATH/metastore_db/* .lck

0

एचडीएफएस पर एक निर्देशिका बनाएं, और अपने ca_email.csv को इसमें ले जाएं, फिर उस निर्देशिका को निर्दिष्ट करें आपके निर्माण बाहरी तालिका कमांड का स्थान के रूप में।

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