सुअर प्रोग्रामिंग: एचडीएस मोड में यूडीएफ के साथ अपाचे सुअर स्क्रिप्ट



सुअर प्रोग्रामिंग: एचडीएस मोड में यूडीएफ के साथ अपाचे सुअर स्क्रिप्ट। यहाँ HDFS मोड में UDF के साथ Apache Pig स्क्रिप्ट चलाने के लिए एक ब्लॉग पोस्ट है ...

पिछले ब्लॉग पोस्टों में हमने देखा कि कैसे शुरू किया जाए सुअर प्रोग्रामिंग और स्क्रिप्टिंग । हमने लिखने के लिए कदम उठाए हैं पिग स्क्रिप्ट HDFS मोड में तथा यूडीएफ के बिना। इस श्रृंखला के तीसरे भाग में हम एक पिग स्क्रिप्ट के साथ लिखने के चरणों की समीक्षा करेंगे एचडीएफ मोड में यूडीएफ

हमने सुअर अंतर्निहित कार्य की कार्यक्षमता को समझाने के लिए अंतर्निहित कार्यों को बनाकर सुअर यूडीएफ को कैसे लागू किया जाए, यह समझाया है। बेहतर स्पष्टीकरण के लिए, हमने दो अंतर्निहित कार्य किए हैं। हमने यह एक पिग स्क्रिप्ट की मदद से किया है।





यहां, हमने एक उदाहरण लिया है और हमने यूडीएफ (उपयोगकर्ता परिभाषित कार्य) दोनों का उपयोग किया है यानी ऊपरी मामले में एक स्ट्रिंग बना रहा है और एक मूल्य ले रहा है और इसकी शक्ति बढ़ा रहा है।

डेटासेट को नीचे दर्शाया गया है जिसका हम इस उदाहरण में उपयोग करने जा रहे हैं:



table

हमारा उद्देश्य ऊपरी मामले में 1 कॉलम पत्र बनाना और 3 कॉलम के मूल्य के साथ 2 कॉलम की शक्ति बढ़ाना है।

प्रत्येक UDF के लिए जावा कोड लिखने के साथ शुरू करते हैं। संकलन त्रुटियों से बचने के लिए भी हमें अपने जावा प्रोजेक्ट में 4 JAR को कॉन्फ़िगर करना होगा।
सबसे पहले, हम जावा प्रोग्राम बनाएंगे, दोनों नीचे दिए गए हैं:



अपर.जवा

आयात java.io.IO.ception अपवाद आयात org.apache.pig.EvalFunc आयात org.apache.pig.data.Tuple आयात org.apache.pig.impl.util.WrappedIOException-SuppressWarnings ('वंचन') सार्वजनिक वर्ग ऊपरी विस्तार EvalFunc {सार्वजनिक स्ट्रिंग निष्पादन (टुपल इनपुट) IOException {if (इनपुट == null || input.size () == 0) वापस नल का प्रयास करें {स्ट्रिंग str = (स्ट्रिंग) input.get (0) str = .toUpperCase () वापस फेंकता है str} कैच (अपवाद e) {थ्रो WrappedIOException.wrap ((पकड़ा गया अपवाद प्रसंस्करण इनपुट पंक्ति ’, e)}}}

पाव.जावा

आयात java.io.IO। अपवाद आयात org.apache.pig.EvalFunc आयात org.apache.pig.PigWarning आयात org.apache.pig.data.Tuple सार्वजनिक वर्ग Pow Evalalunc {सार्वजनिक लंबी निष्पादन (Tuple input) को बढ़ाता है IOException {try {का प्रयास करें int base = (पूर्णांक) input.get (0) int घातांक = (पूर्णांक) input.get (१) दीर्घ परिणाम = १ / * संभवतः सबसे कुशल विधि नहीं ... * / (int i = ० मैं परिणाम) {// हम बह निकले। एक चेतावनी दें, लेकिन एक // अपवाद न फेंकें। चेतावनी ('अतिप्रवाह!', PigWarning.TOO_LARGE_FOR_INT) // रिटर्निंग नल सुअर को इंगित करेगा कि हम असफल रहे लेकिन // हम निष्पादन जारी रखना चाहते हैं। वापसी अशक्त}} वापसी परिणाम} पकड़ (अपवाद e) {// अपवाद फेंकने से कार्य विफल हो जाएगा। नई IOException फेंक ('कुछ बुरा हुआ!',)}}}

संकलन त्रुटियों को दूर करने के लिए, हमें कॉन्फ़िगर करना होगा 4 जार हमारे जावा परियोजना में।


JAR को डाउनलोड करने के लिए डाउनलोड बटन पर क्लिक करें

[buttonleads form_title = 'डाउनलोड कोड' redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 7690033 कोर्स_id = 166 बटन_text = 'डाउनलोड जार']]

अब, हम दोनों जावा कोड के लिए JAR फ़ाइलों को निर्यात करते हैं। कृपया JAR निर्माण के लिए नीचे दिए गए चरणों की जाँच करें।

यहां, हमने एक कार्यक्रम के लिए दिखाया है, अगले कार्यक्रम में भी उसी तरह आगे बढ़ें।

क्या रिश्ता है जावा में

JAR और पाठ फ़ाइलों को बनाने के बाद, हमने सभी डेटा को HDFS क्लस्टर में स्थानांतरित कर दिया है, जिसे निम्न छवियों द्वारा दर्शाया गया है:

हमारे डेटासेट में, फ़ील्ड अल्पविराम (,) अलग हैं।

फ़ाइल को स्थानांतरित करने के बाद, हमने .pig एक्सटेंशन के साथ स्क्रिप्ट बनाई है और उस स्क्रिप्ट फ़ाइल में सभी कमांड डाल दिए हैं।

अब टर्मिनल में, PIG उसके बाद स्क्रिप्ट फ़ाइल के नाम से टाइप करें जो निम्न चित्र में दिखाया गया है:

यहाँ, यह पिग स्क्रिप्ट चलाने के लिए आउटपुट है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया टिप्पणी अनुभाग में उनका उल्लेख करें और हम आपके पास वापस आ जाएंगे।

संबंधित पोस्ट:

Apache Pig में UDF बनाने के चरण

अपाचे हाइव का परिचय