2012-03-28 9 views

उत्तर

17

आप कुछ तरीकों से कर सकते हैं:

  • सभी सुअर opeations के लिए reducers की संख्या निर्धारित करने के लिए, आप default_parallel संपत्ति का उपयोग कर सकते हैं - लेकिन इसका मतलब यह है हर एक कदम एक भी कम करने का उपयोग करेगा, घटते प्रवाह क्षमता:

    set default_parallel 1;

  • बुला स्टोर करने से पहले, यदि संचालन में से एक को अंजाम है (COGROUP, क्रॉस, अलग, ग्रुप, JOIN (आंतरिक), JOIN (बाहरी), और आदेश द्वारा), तो आप सी एक प्रयोग PARALLEL 1 कीवर्ड एक भी कम करने के उपयोग को निरूपित करने के कि आदेश को पूरा करने के:

    GROUP a BY grp PARALLEL 1;

अधिक जानकारी के लिए Pig Cookbook - Parallel Features देखें

+0

महान सामान, क्रिस, धन्यवाद! – JasonA

+0

मुझे नहीं लगता कि यह आदर्श है क्योंकि आप बड़े आउटपुट डेटा पर बहुत कम reducers के साथ स्मृति त्रुटि से बाहर हो सकता है। – FreeTymeKiyan

15

तुम भी उन सभी के विलय करने के लिए Hadoop के getmerge आदेश का उपयोग कर सकते हैं भाग- * फाइलें। यह केवल तभी संभव है जब आप पिग खोल (और जावा से नहीं) से अपनी पिग स्क्रिप्ट चलाते हैं।

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

grunt> fs -getmerge <Pig output file> <local file> 
संबंधित मुद्दे