簡體   English   中英

匹配鍵並在不使用數據幀的情況下將2個RDD加入pyspark

[英]Match keys and join 2 RDD's in pyspark without using dataframes

我有2個RDD。

RDD 1:
[['1', 'user1', 'Name1'],
 ['2', 'user4', 'Name2']]

RDD 2:
[['5', '1a', '3', '99', 'g1'],
 ['11', '2b', '1', '99', 'g2'],
 ['12', '3c', '2', '99', 'g3']]

我必須使用RDD 1(1,2)等中的第一個字段與RDD2(3,1,2)等中的第三個字段將上述2個RDD聯接起來,並且只有在兩者都可用的情況下,才能將匹配的行寫入新輸出RDD 。 我知道可以執行聯接操作。 但不確定如何。

Required output
[['1','Name1'],
 ['2','Name2']] 

如何進行呢? 有沒有一種方法可以不使用數據框?

類似問題的答案並沒有幫助我找到理想的解決方案。 所以我不得不再次發布查詢。

您也可以加入RDD。 該代碼將為您提供所需的確切信息。

tuple_rdd1 = rdd1.map(lambda x: (x(0), x(2)))
tuple_rdd2 = rdd1.map(lambda x: (x(2), 0)) )
result = tuple_rdd1.join(tuple_rdd2).map(lambda x:  [x[0], x[1][0] ])

第一行選擇rdd1中的鍵和名稱。 第2行選擇rdd2的第3列,最后一行將兩者合並,並將結果放入所需的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM