हाइव फ़ंक्शन: अंतर्निहित & यूडीएफ (उपयोगकर्ता परिभाषित कार्य)

विषय - सूची:

Anonim

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

अंतर्निहित कार्य

ये ऐसे कार्य हैं जो पहले से ही हाइव में उपलब्ध हैं। सबसे पहले, हमें आवेदन की आवश्यकता की जांच करनी होगी, और फिर हम इसे अपने अनुप्रयोगों में फ़ंक्शन में उपयोग कर सकते हैं। हम इन कार्यों को सीधे अपने आवेदन में कह सकते हैं।

सिंटैक्स और प्रकारों का उल्लेख निम्न अनुभाग में किया गया है।

HIVE में अंतर्निहित कार्य के प्रकार

  • संग्रह कार्य
  • दिनांक कार्य
  • गणितीय कार्य
  • सशर्त कार्य
  • स्ट्रिंग फ़ंक्शंस
  • मे ता। कार्यों

संग्रह कार्य:

इन कार्यों का उपयोग संग्रह के लिए किया जाता है। संग्रह का मतलब तत्वों के समूहन और तत्वों के एकल या सरणी को लौटाना है जो फ़ंक्शन नाम में उल्लिखित रिटर्न प्रकार पर निर्भर करता है।

वापसी प्रकार कार्य का नाम विवरण
पूर्णांक आकार (मानचित्र <केवी>) यह नक्शे प्रकार में घटकों की संख्या लाएगा और देगा
पूर्णांक आकार (सरणी ) यह सरणी प्रकार में तत्वों को लाएगा और देगा
सरणी Map_keys (मानचित्र <केवी>) यह प्राप्त करेगा और इनपुट मानचित्र की कुंजी युक्त एक सरणी देता है। यहाँ सरणी अनियंत्रित है
अर्रे है Map_values ​​(मानचित्र <केवी>) यह प्राप्त करेगा और इनपुट मानचित्र के मूल्यों से युक्त एक सरणी देता है। यहाँ सरणी अनियंत्रित है
सरणी Sort_array (सरणी ) सरणी और तत्वों के बढ़ते क्रम में इनपुट सरणी को सॉर्ट करें और इसे वापस लौटाएं

दिनांक कार्य:

इनका उपयोग दिनांक हेरफेर और दिनांक प्रकारों को एक प्रकार से दूसरे प्रकार में बदलने के लिए किया जाता है:

कार्य का नाम वापसी प्रकार विवरण
Unix_Timestamp () BigInt हम सेकंड में वर्तमान यूनिक्स टाइमस्टैम्प प्राप्त करेंगे
To_date (स्ट्रिंग टाइमस्टैम्प) तार यह एक टाइमस्टैम्प स्ट्रिंग की तारीख और हिस्सा लेगा:
वर्ष (स्ट्रिंग तिथि) पूर्णांक यह एक तारीख या टाइमस्टैम्प स्ट्रिंग के वर्ष का हिस्सा लाएगा और देगा
तिमाही (तारीख / टाइमस्टैम्प / स्ट्रिंग) पूर्णांक यह 1 से 4 के बीच की तारीख, टाइमस्टैम्प, या स्ट्रिंग के लिए वर्ष की तिमाही लाएगा
महीना (स्ट्रिंग तिथि) पूर्णांक यह महीने की तारीख या टाइमस्टैम्प स्ट्रिंग का हिस्सा देगा
घंटा (स्ट्रिंग दिनांक) पूर्णांक यह समय पर आएगा और टाइमस्टैम्प का समय देगा
मिनट (स्ट्रिंग दिनांक) पूर्णांक यह लाएगा और टाइमस्टैम्प का मिनट देता है
Date_sub (स्ट्रिंग की प्रारंभिक तिथि, इंट दिन) तार यह लाने और शुरू होने की तारीख के दिनों की संख्या का घटाव देगा
आज की तारीख तारीख यह प्राप्त होगा और क्वेरी मूल्यांकन की शुरुआत में वर्तमान तिथि देता है
LAST _day (स्ट्रिंग तिथि) तार यह प्राप्त होगा और महीने का अंतिम दिन है जो तारीख से संबंधित है
ट्रंक (स्ट्रिंग तिथि, स्ट्रिंग प्रारूप) तार यह प्रारूप द्वारा निर्दिष्ट इकाई को काट दिया जाएगा। इसमें समर्थित प्रारूप: MONTH / MON / MM, YEAR / YYYY / YY।

गणितीय कार्य :

इन कार्यों का उपयोग गणितीय कार्यों के लिए किया जाता है। HUD बनाने के बजाय, हाइव में हमारे पास कुछ इनबिल्ट गणितीय कार्य हैं।

कार्य का नाम वापसी प्रकार विवरण
दौर (डबल एक्स) दोहरा यह एक्स के गोल बड़े मूल्य को प्राप्त करेगा और लौटाएगा
दौर (डबल एक्स, INT डी) दोहरा यह X और d को दशमलव स्थानों पर लाएगा
Bround (डबल एक्स) दोहरा यह HALF_EVEN गोलाई मोड का उपयोग करके एक्स के गोल बड़े मूल्य को प्राप्त करेगा और लौटाएगा
मंजिल (डबल एक्स) BIGINT यह अधिकतम BIGINT मान प्राप्त करेगा और X मान से कम या अधिक होगा
छत (डबल), छत (एक) BIGINT यह न्यूनतम BIGINT मान को लौटाएगा और लौटाएगा जो X मान के बराबर या उससे अधिक है
रैंड (), रैंड (INT बीज) दोहरा यह एक यादृच्छिक संख्या लाएगा और लौटाएगा जो 0 से 1 तक समान रूप से वितरित किया जाता है

सशर्त कार्य:

सशर्त मूल्यों की जांच के लिए इन कार्यों का उपयोग किया जाता है।

कार्य का नाम वापसी प्रकार विवरण
यदि (बूलियन परीक्षण टी यह प्राप्त होगा और जब टेस्ट कंडीशन सही है, तब वैल्यू देता है, अन्यथा फाल्स या नल को वैल्यू देता है।
ISNULL (X) बूलियन यदि X NULL है और गलत है तो यह प्राप्त होगा और सही होगा।
ISNOTNULL (X) बूलियन यह लाने और सही होगा अगर X NULL नहीं है और अन्यथा गलत है।

स्ट्रिंग कार्य:

स्ट्रिंग जोड़तोड़ और स्ट्रिंग ऑपरेशन इन कार्यों को कहा जा सकता है।

कार्य का नाम वापसी प्रकार विवरण
रिवर्स (स्ट्रिंग X) तार यह एक्स का उल्टा स्ट्रिंग देगा
rpad (स्ट्रिंग स्ट्रिंग, इंट लंबाई, स्ट्रिंग पैड) तार यह लेगा और देगा, जो लंबाई के साथ पैड के साथ दाईं-पैडेड है (पूर्णांक मान)
आरटीआरआई (स्ट्रिंग एक्स) तार यह एक्स के अंत (दाएं हाथ की ओर) से ट्रिमिंग रिक्त स्थान के परिणामस्वरूप स्ट्रिंग को लाएगा और लौटाएगा उदाहरण के लिए , 'परिणाम' में आरटीआरआई ('परिणाम') परिणाम
अंतरिक्ष (INT n) तार यह प्राप्त करेगा और n रिक्त स्थान का एक तार देगा।
विभाजन सरणी पैट के चारों ओर विभाजन (पैट एक नियमित अभिव्यक्ति है)।
Str_to_map (पाठ [, delimiter1, delimiter2]) नक्शा <स्ट्रिंग, स्ट्रिंग> यह दो सीमांकक का उपयोग करके पाठ को मुख्य-मूल्य वाले जोड़े में विभाजित करेगा।

यूडीएफ (उपयोगकर्ता निर्धारित कार्य):

हाइव में, उपयोगकर्ता कुछ क्लाइंट आवश्यकताओं को पूरा करने के लिए स्वयं के कार्यों को परिभाषित कर सकते हैं। इन्हें हाइव में यूडीएफ के रूप में जाना जाता है। विशिष्ट मॉड्यूल के लिए जावा में लिखे गए उपयोगकर्ता परिभाषित कार्य।

यूडीएफ में से कुछ को विशेष रूप से एप्लिकेशन फ्रेमवर्क में कोड की पुन: प्रयोज्य के लिए डिज़ाइन किया गया है। डेवलपर जावा में इन कार्यों को विकसित करेगा और उन यूडीएफ को हाइव के साथ एकीकृत करेगा।

क्वेरी निष्पादन के दौरान, डेवलपर सीधे कोड का उपयोग कर सकता है, और UDFs उपयोगकर्ता परिभाषित कार्यों के अनुसार आउटपुट लौटाएगा। यह कोडिंग और निष्पादन के मामले में उच्च प्रदर्शन प्रदान करेगा।

उदाहरण के लिए, स्ट्रिंग स्टेमिंग के लिए हमारे पास हाइव में कोई पूर्वनिर्धारित फ़ंक्शन नहीं है, इसके लिए हम जावा में स्टेम यूडीएफ लिख सकते हैं। जहाँ भी हमें Stem कार्यक्षमता की आवश्यकता होती है, हम सीधे Stem UDF को Hive में कॉल कर सकते हैं।

यहाँ स्टेम फंक्शनलिटी का अर्थ है अपने मूल शब्दों से शब्द निकालना। यह ऐसा है जैसे कि एल्गोरिथम एल्गोरिथम "इच्छा", "कामना" और "इच्छा" शब्द को मूल शब्द "इच्छा" को कम कर देता है। इस प्रकार की कार्यक्षमता के लिए, हम UDF को जावा में लिख सकते हैं और हाइव के साथ एकीकृत कर सकते हैं।

उपयोग के मामलों के आधार पर यूडीएफ लिखा जा सकता है, यह विभिन्न संख्या में इनपुट और आउटपुट मानों को स्वीकार करेगा और उत्पादन करेगा।

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

दूसरे तरीके में, यह मानों के समूह को इनपुट के रूप में स्वीकार कर सकता है और एकल आउटपुट मान भी लौटा सकता है।