आप इस तरह के मोर्टार डेटा द्वारा प्रदान की streaming_python के रूप में मानक Jython UDFs और नहीं किसी भी अन्य वितरण का उपयोग कर रहे हैं, तो तुम सब करने की जरूरत है:
@outputSchema('m:map[]')
चाबियाँ एक ही आप की स्थापना की है कि हो जाएगा अजगर में आप अपने dict भीतर एक और शब्दकोशों है, तो आप इसके बारे में चिंता नहीं करनी चाहिए, सुअर यह समझते हैं और निम्नलिखित वाक्य रचना का उपयोग करेगा:
([first#{third=inner_dict},first#outter_dict])
वहाँ एक Jython यूडीएफ से सुअर के लिए वापस dict गुजर के बारे में एक बड़ा नुकसान है, आप कर रहे हैं केवल ताना में सभी मूल्यों के लिए एक डेटाटाइप सेट करने में सक्षम है, जिसका अर्थ है कि यदि आप कोई डेटाटाइप डुबकी सेट नहीं करते हैं तो डेटा प्रकार के रूप में बाइटरेरे का उपयोग करेगा और तारीख या जटिल संरचनाओं के साथ काम करते समय यह समस्या हो सकती है। उदाहरण के लिए:
@outputSchema('m:map[chararray]')
tuples और बैग:
जब आप एक Jython UDFs से सुअर के लिए वापस एक टपल या एक बैग वापस जाने के लिए यह याद रखना महत्वपूर्ण है कि अजगर की सूची tuples को बैग और tuples में बदलने का उपयोगी है चाहता हूँ ।
सूचियाँ:
@outputSchema('m:bag{chararray}')
याद रखें कि सुअर बैग tuples से भर रहे हैं, तो आप अपने बैग के लिए एक अच्छी संरचना सेट करना चाहते हैं, तो आप बैग के भीतर एक टपल की घोषणा कर सकता है, और वहाँ आप उदाहरण के लिए आप जिस डेटाटाइप को पारित करेंगे, उसे सेट करने में सक्षम होंगे। उदाहरण:
@outputSchema('map_reduce:bag{t:(key:chararray,value:int,start_date:datetime,end_date:datetime)}')
अंत में, tuples किसी भी तरह सहज ज्ञान युक्त होना चाहिए, वे सबसे आसान संरचना जब Jython का उपयोग कर उपयोग करने के लिए कर रहे हैं। एक टुपल के भीतर आप जितने चाहें उतने फ़ील्ड सेट कर सकते हैं और जितना चाहें उतना स्तर जितना आप ऊपर दिए गए उदाहरणों का पालन करते हैं। आप एक ट्यूपल के भीतर एक टुपल घोषित कर सकते हैं, जिसमें एक बैग और अन्य मूल्य इत्यादि हैं।
जटिल परिचालन करने या जटिल डेटा प्रकारों जैसे कि JSON संरचनाओं, सरणीओं और जटिल डेटा प्रकारों के साथ काम करते समय मैं जावा यूडीएफ का उपयोग करने की दृढ़ता से अनुशंसा करता हूं। सूचियों। सीखने की अवस्था थोड़ी अधिक खड़ी हो सकती है, लेकिन एक बार जब आप इसे पार कर लेते हैं, तो आपका विकास बहुत तेज़ और आपके कार्यक्रम के थ्रूपुट भी होगा।