मेरे पास एचडीएफएस में एक लॉग फ़ाइल है, मान अल्पविराम से सीमित हैं। उदाहरण के लिए:विभाजित तालिका में छिद्र लोडिंग
2012-10-11 12:00,opened_browser,userid111,deviceid222
अब मैं मेज जो कॉलम "टाइमस्टैम्प", "कार्रवाई" है और "उपयोगकर्ता id", "DeviceID" द्वारा विभाजित छत्ता के लिए इस फ़ाइल को लोड करना चाहते हैं। मैं फ़ाइल के लिए विभाजन के रूप में लॉग फ़ाइल में अंतिम 2 कॉलम लेने के लिए हाइव से कैसे पूछ सकता हूं? सभी उदाहरण e.g. "hive> LOAD DATA INPATH '/user/myname/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-15');"
को स्क्रिप्ट में विभाजन की परिभाषा की आवश्यकता है, लेकिन मैं विभाजन को एचडीएफएस फ़ाइल से स्वचालित रूप से सेट करना चाहता हूं।
एक समाधान सभी 4 कॉलम के साथ इंटरमीडिएट गैर-विभाजित तालिका बनाने के लिए है, इसे फ़ाइल से पॉप्युलेट करें और फिर INSERT into first_table PARTITION (userid,deviceid) select from intermediate_table timestamp,action,userid,deviceid;
बनाएं लेकिन यह और अतिरिक्त कार्य है और हमारे पास 2 बहुत ही समान टेबल होंगे .. या हमें बनाना चाहिए मध्यवर्ती के रूप में बाहरी तालिका।
धन्यवाद, डेनी। इस तरह मैंने इस समस्या को हल किया है - बाहरी तालिका का उपयोग करके जो कच्ची फ़ाइल को इंगित करता है और उसके बाद से डेटा चयनित विभाजन के साथ विभाजित तालिका में डाला जाता है। इस तरह के मामले का यह एकमात्र सरल समाधान है। –
कूल सामान - खुशी हुई यह काम किया, आह ?! –
हां, यह एक जादू है :) मैंने इसे एक ही समय में हल किया है जब आपने अपनी टिप्पणी जोड़ा :) शायद आप किसी अन्य मुद्दे के साथ मेरी मदद कर सकते हैं? http://stackoverflow.com/questions/13240409/hadoop-eof-exception-after-map-step –