java - combine two JavaPairRDD -
मैं स्पार्क में java के साथ काम कर रहा हूं। मेरे पास एक JavaPairRDD Out1
आउट 1:
IDCLIENT | INFO | 1 | एक | 1 | C | 1 | H | 5 | R | 2 | बी |
और मैं Out1 के नाम पर Out1 नाम वाला एक नया JavaPairRDD बनाना चाहता हूं पहली पंक्ति:
आउट2:
IDCLIENT2 | INFO | 1 | C | 1 | H | 5 | R | 2 | बी |
इसके बाद, मैं इन दो JavaPairRDD को इस तरह से जोड़ना चाहता हूं:
आउट3:
IDCLIENT | जानकारी | IDCLIENT2 | 1 | ए, सी | 1 | 1 | सी, एच | 1 | 1 | एच आर | 5 | 5 | आर, बी | 2 | 2 | बी | |
नोट: हम groupByKey
का उपयोग नहीं कर सकते क्योंकि हमारे पास एक से अधिक पंक्ति में एक ही कुंजी हो सकती है।
मैं चाहता हूं इसे zipWithIndex
का उपयोग करके और सूचकांक द्वारा जुड़ने से संपर्क करें। यह बहुत भारी है लेकिन काम पूरा हो जाएगा:
val indexed1 = out1.zipWithIndex val indexed2 = indexed1.map {(k, v) = & gt; ((K-1), v)} वेल शामिल = इंडेक्टेड 1 में शामिल इंडेक्टेड 2 वैल out3 = join.map {case (k, (v1, v2)) = & gt; प्रारूप (v1, v2)} // जहां प्रारूप को वांछित आउटपुट लेआउट में मान मिलते हैं
यदि डेटासेट मेमोरी में फिट होगा, तो मैं सिर्फ एक सादा स्कला 'oneliner' करूँगा:
out1.zip (out1.drop (1))। Map {case (o1, o2) = & gt; प्रारूप (ओ 1, ओ 2)}
Comments
Post a Comment