hadoop - generating bigram combinations from grouped data in pig -
मेरे इनपुट डेटा को userid, itemid प्रारूप में दिया गया है:
कच्चे: {userid: bytearray , मदरहित: बायटैरेई} कच्चा डंप; (ए, 1) (ए, 2) (ए, 4) (ए, 5) (बी, 2) (बी, 3) (बी, 5) (सी, 1) (सी, 5) जीआरपीडी = ग्रुप कच्चा BY यूज़र आईडी; डंप जीआरपीडी; (ए, (ए, 1), (ए, 2), (ए, 4), (ए, 5)}) (बी, {(बी 2), (बी, 3), (बी, 5) }) (सी, {(सी, 1), (सी, 5)})
मैं प्रत्येक समूह के अंदर सभी संयोजनों (ऑर्डर के लिए जरूरी नहीं) उत्पन्न करना चाहता हूं । मैं आखिरकार अपने समूह में आइटम्स पर जॅक कार्ड समानता प्रदर्शन करने का इरादा रखता हूं।
आदर्श रूप से मेरे बड़ेअम उत्पन्न होंगे और फिर मैं इस तरह दिखने के लिए आउटपुट को फ़्लैट करता हूं:
(ए, (1,2)) (ए, (1,3)) (ए, (1,4)) (ए, (2,3)) (ए, (2,4)) (ए, (3 , 4)) (बी, (1,2)) (बी, (2,3)) (बी, (3,5)) (सी, (1,5))
पत्र एबीसी, जो यूजरआड का प्रतिनिधित्व करते हैं, वास्तव में आउटपुट के लिए जरूरी नहीं हैं, मैं सिर्फ उन्हें स्पष्ट उद्देश्यों के लिए दिखा रहा हूँ वहां से, मैं जैककार्ड की गणना के लिए प्रत्येक बड़ेराम की घटनाओं की संख्या की गणना करता। मुझे यह जानना अच्छा लगेगा कि क्या किसी और को समान समानता कैलक्स (माफ करना!) के लिए सुअर का उपयोग कर रहा है और इससे पहले से ही इसका सामना करना पड़ा है।
मैंने देखा है कि एनजीराम जनरेटर जो सुअर ट्यूटोरियल के साथ दिया गया है लेकिन यह ' वास्तव में जो मैं पूरा करने की कोशिश कर रहा हूँ मैच वास्तव में। मैं सोच रहा हूं कि शायद यूडीएफ स्ट्रीमिंग वाला अजगर जाने का तरीका है।
आप निश्चित रूप से जा रहे हैं एक यूडीएफ (पायथन या जावा में, या तो ठीक होगा) लिखना होगा आप इसे एक बैग पर काम करना चाहते हैं, और फिर एक बैग का उत्पादन करते हैं (यदि आप टेउल्स के एक बैग को समतल करते हैं, तो आप आउटपुट पंक्तियाँ पायेंगे, जिससे आपको वह आउटपुट दिया जाएगा जो आप चाहते हैं)।
यूडीएफ अपने आप को बहुत मुश्किल नहीं होगा ...
पत्र, संख्या = ज़िप (* इनपुट_टौप्स) संख्या = सूची (जैसे (नंबर (संख्या) में मैं (0, लेन (संख्या)) के लिए सेट है : श्रेणी में जम्मू के लिए (i, लेन (संख्या)): res.append ((संख्या [i], संख्या [j]))
और फिर बस चीजों को डाली और उन्हें उचित रूप से वापस करें ।
यदि आपको एक सरल अजगर उदफ बनाने में कोई मदद की आवश्यकता है, तो यह बहुत बुरा नहीं है। यहां पर देखें:
और निश्चित रूप से यहां अधिक सहायता मांगने के लिए स्वतंत्र महसूस करें
/ div>
Comments
Post a Comment