Apache Pig में ऑपरेटर्स: पार्ट 1- रिलेशनल ऑपरेटर्स



यह पोस्ट Apache Pig में ऑपरेटर्स के बारे में बताता है। Apache Pig में पार्टनर्स के लिए इस पोस्ट पर एक नज़र डालें: भाग 1 - रिलेशनल ऑपरेटर्स।

यह पोस्ट अपाचे पिग में ऑपरेटरों के बारे में है।Apache Pig आपको जावा के ज्ञान के बिना जटिल डेटा परिवर्तन लिखने में सक्षम बनाता है, जिससे यह वास्तव में महत्वपूर्ण है चलो सुअर और सुअर लैटिन क्या है और उन विभिन्न तरीकों पर नज़र डालते हैं, जिन्हें वे ऑपरेट करने से पहले ऑपरेटर्स को दे सकते हैं।

अपाचे सुअर क्या है?

अपाचे सुअर Hadoop और मैप रिड्यूस प्लेटफॉर्म का उपयोग करके बड़े डेटा सेट को क्वेरी करने के लिए एक उच्च-स्तरीय प्रक्रियात्मक भाषा है। यह एक जावा पैकेज है, जहां स्क्रिप्ट्स को JVM पर चल रहे किसी भी भाषा कार्यान्वयन से निष्पादित किया जा सकता है। पुनरावृत्त प्रक्रियाओं में इसका बहुत उपयोग किया जाता है।





Apache Pig एक वितरित डेटासेट के लिए SQL- जैसे प्रश्नों की अनुमति देकर Hadoop के उपयोग को सरल बनाता है और बड़ी मात्रा में डेटा को जल्दी और प्रभावी ढंग से संसाधित करने के लिए जटिल कार्य बनाना संभव बनाता है। पिग की सबसे अच्छी विशेषता यह है कि, यह कई रिलेशनल फीचर्स जैसे Join, Group और Aggregate को बैक करता है।

मुझे पता है कि सुअर ईटीएल टूल की तरह बहुत अधिक लगता है और इसमें ईटीएल टूल्स के साथ कई विशेषताएं आम हैं। लेकिन ETL टूल्स पर Pig का फायदा यह है कि यह एक साथ कई सर्वर पर चल सकता है।



Apache Pig लैटिन क्या है?

Apache Pig एक अधिक संरचित क्वेरी लैंग्वेज (SQL) जैसी इंटरफ़ेस को अपाचे पिग लैटिन नाम के Hadoop अनुप्रयोगों के लिए बेनकाब करने के लिए मैप रिड्यूस पर एक सरल प्रक्रियात्मक भाषा अमूर्तता बनाता है, इसलिए एक अलग मैप कम करने के लिए एप्लिकेशन को लिखने के बजाय, आप Apache में एक ही स्क्रिप्ट लिख सकते हैं सुअर लैटिन जो स्वचालित रूप से एक क्लस्टर में समानांतर और वितरित किया जाता है। सरल शब्दों में, पिग लैटिन, एक इनपुट लेने और आउटपुट का निर्माण करने वाले सरल कथनों का एक क्रम है। इनपुट और आउटपुट डेटा बैग, मैप्स, ट्यूपल्स और स्केलर से बने होते हैं।

अपाचे सुअर निष्पादन मोड:

Apache Pig के दो निष्पादन मोड हैं:

  • स्थानीय मोड

'स्थानीय मोड' में, स्रोत डेटा को आपके कंप्यूटर सिस्टम में स्थानीय निर्देशिका से लिया जाएगा। MapReduce मोड को ed pig -x local ’कमांड का उपयोग करके निर्दिष्ट किया जा सकता है।



Apache Pig में ऑपरेटर - 1

  • MapReduce मोड:

MapReduce मोड में Pig चलाने के लिए, आपको Hadoop क्लस्टर और HDFS इंस्टॉलेशन तक पहुँच की आवश्यकता होती है। MapReduce मोड को 'पिग' कमांड का उपयोग करके निर्दिष्ट किया जा सकता है।

अपाचे सुअर संचालक:

Apache Pig ऑपरेटर्स Hadoop और Map Reduce Platform का उपयोग करके बड़े डेटा सेट को क्वेरी करने के लिए एक उच्च-स्तरीय प्रक्रियात्मक भाषा है। एक सुअर लैटिन स्टेटमेंट एक ऑपरेटर है जो एक संबंध को इनपुट के रूप में लेता है और आउटपुट के रूप में एक और संबंध बनाता है। ये ऑपरेटर डेटा पर काम करने के लिए पिग लैटिन के लिए मुख्य उपकरण हैं। वे आपको इसे छाँटने, समूह बनाने, जुड़ने, प्रोजेक्ट करने और फ़िल्टर करने से बदलने की अनुमति देते हैं।

आज्ञाओं को चलाने के लिए दो फाइलें बनाएं:

हमारे पास ’पहले’ और ’दूसरे नाम वाली दो फाइलें हैं। पहली फाइल में तीन फ़ील्ड हैं: उपयोगकर्ता, यूआरएल और आईडी।

दूसरी फ़ाइल में दो फ़ील्ड हैं: url और रेटिंग। ये दो फाइलें CSV फाइलें हैं।

Apache Pig ऑपरेटरों को इस प्रकार वर्गीकृत किया जा सकता है: संबंधपरक और नैदानिक।

संबंधपरक संकारक:

रिलेशनल ऑपरेटर्स मुख्य उपकरण हैं जो सुअर लैटिन डेटा पर संचालित करने के लिए प्रदान करता है। यह आपको डेटा को सॉर्ट, समूहीकरण, जुड़ने, प्रोजेक्ट करने और फ़िल्टर करने से बदलने देता है। यह खंड बुनियादी संबंधपरक ऑपरेटरों को शामिल करता है।

भार:

LOAD ऑपरेटर का उपयोग फाइल सिस्टम या HDFS स्टोरेज से डेटा को पिग रिलेशन में लोड करने के लिए किया जाता है।

इस उदाहरण में, लोड ऑपरेटर फ़ाइल से डेटा लोड करता है 'संबंध' बनाने के लिए पहले 'लोडिंग 1'। क्षेत्र के नाम उपयोगकर्ता, यूआरएल, आईडी हैं।

प्रत्येक के लिए:

यह ऑपरेटर डेटा के कॉलम के आधार पर डेटा ट्रांसफ़ॉर्मेशन जेनरेट करता है। इसका उपयोग किसी संबंध से फ़ील्ड जोड़ने या निकालने के लिए किया जाता है। डेटा के कॉलम के साथ काम करने के लिए FOREACH-GENERATE ऑपरेशन का उपयोग करें।

आगे का परिणाम:

फिल्टर:

यह ऑपरेटर एक शर्त के आधार पर संबंध से ट्यूपल्स का चयन करता है।

निःशुल्क pl sql ऑनलाइन मुफ़्त सीखें

इस उदाहरण में, हम ‘loading1 से रिकॉर्ड फ़िल्टर कर रहे हैं, जब कंडीशन ing id’ 8 से अधिक है।

फिल्टर परिणाम:

शामिल हों:

JOIN ऑपरेटर का उपयोग सामान्य क्षेत्र मूल्यों के आधार पर दो या अधिक संबंधों के आंतरिक, समरूप जुड़ाव को करने के लिए किया जाता है। JOIN ऑपरेटर हमेशा एक आंतरिक जॉइन करता है। भीतरी जुड़ाव अशक्त कुंजियों को अनदेखा करता है, इसलिए इससे जुड़ने से पहले उन्हें फ़िल्टर करना समझ में आता है।

इस उदाहरण में, स्तंभ 'url' पर 'लोडिंग 1' और 'लोडिंग 2' के आधार पर दो संबंधों में शामिल हों।

जोइन परिणाम:

द्वारा आदेश:

ऑर्डर बाय का उपयोग एक या एक से अधिक क्षेत्रों के आधार पर संबंध बनाने के लिए किया जाता है। आप ASC और DESC कीवर्ड का उपयोग करके आरोही या अवरोही क्रम में सॉर्टिंग कर सकते हैं।

नीचे दिए गए उदाहरण में, हम लोडिंग 2 में डेटा को रेटिंग क्षेत्र पर आरोही क्रम में सॉर्ट कर रहे हैं।

परिणाम द्वारा आदेश :

DISTINCT:

डिस्टिंक्ट एक संबंध में डुप्लिकेट ट्यूपल्स को हटा देता है। नीचे के रूप में एक इनपुट फ़ाइल लें, जिसमें है amr, बकवास,, तथा amr, myblog, 10 दो बार फाइल में। जब हम इस फ़ाइल में डेटा पर अलग-अलग लागू होते हैं, तो डुप्लिकेट प्रविष्टियाँ हटा दी जाती हैं।

DISTINCT परिणाम:

दुकान:

फ़ाइल सिस्टम में परिणाम सहेजने के लिए स्टोर का उपयोग किया जाता है।

यहां हम बचा रहे हैं लोडिंग 3 नाम की एक फ़ाइल में डेटा भंडारण एचडीएफएस पर।

परिणाम परिणाम:

ग्रुप:

ग्रुप ऑपरेटर एक ही समूह कुंजी (कुंजी क्षेत्र) के साथ एक साथ tuples समूह बनाता है। यदि समूह कुंजी में एक से अधिक फ़ील्ड हैं, तो कुंजी फ़ील्ड टुपल होगी, अन्यथा यह समूह कुंजी की तरह ही होगी। एक ग्रुप ऑपरेशन का परिणाम एक संबंध है जिसमें प्रति समूह एक टपल शामिल है।

इस उदाहरण में, समूह वें

स्तंभ url द्वारा ई संबंध ‘loading1’।

ग्रुप रिजल्ट:

COGROUP:

COGROUP ग्रुप ऑपरेटर के समान है। पठनीयता के लिए, प्रोग्रामर आमतौर पर ग्रुप का उपयोग तब करते हैं जब केवल एक संबंध शामिल होता है और जब कई संबंध फिर से जुड़ जाते हैं।

इस उदाहरण में दोनों संबंधों में url फ़ील्ड द्वारा 'लोडिंग 1' और 'लोडिंग 2' समूह।

COGROUP परिणाम:

पार करना:

CROSS ऑपरेटर का उपयोग दो या अधिक संबंधों के क्रॉस उत्पाद (कार्टेशियन उत्पाद) की गणना करने के लिए किया जाता है।

लोड 1 और लोड 2 पर क्रॉस उत्पाद लागू करना।

क्रॉस परिणाम:

सीमा:

LIMIT ऑपरेटर का उपयोग आउटपुट टुपल्स की संख्या को सीमित करने के लिए किया जाता है। यदि आउटपुट टुपल्स की निर्दिष्ट संख्या संबंध में tuples की संख्या के बराबर या उससे अधिक है, तो आउटपुट संबंध में सभी tuples को शामिल करेगा।

सीमा परिणाम:

विभाजित करें:

SPLIT ऑपरेटर का उपयोग किसी अभिव्यक्ति की सामग्री को किसी अभिव्यक्ति के आधार पर दो या अधिक संबंधों में विभाजित करने के लिए किया जाता है। अभिव्यक्ति में बताई गई शर्तों के आधार पर।

लोडिंग 2 को दो संबंधों x और y में विभाजित करें। लोडिंग 2 द्वारा बनाए गए x संबंध में वे फ़ील्ड होते हैं जो रेटिंग 8 से अधिक होती हैं और y संबंध में ऐसे फ़ील्ड होते हैं जो रेटिंग 8 से कम या उसके बराबर होती है।

अपाचे चिंगारी बनाम हडप मानचित्रण

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

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

Apache Pig में ऑपरेटर्स - डायग्नोस्टिक ऑपरेटर्स

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