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

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

asp.net mvc - How to attach sql database to a javascript graph -

c# - How to know the number of Threads created and limit the Tasks accordingly -