我有兩個RDD,看起來像這樣:RDD1元素看起來像這樣[123,456,789],RDD2元組看起來像這樣[456,999]。現在我需要結合/連接這兩個基於456的RDD,這是RDD1中的第二個元素,RDD2中的第一個元素。最終輸出看起來像這樣: - [123,456,789,999]。有沒有辦法做到這一點,或者做鑰匙需要首先加入? 預先感謝您的時間。當密鑰不在同一地點時連接兩個RDD
1
A
回答
0
您可以將RDD轉換爲Dataframe,然後進行如下所示的簡單連接。
rdd1 = sc.parallelize([(123, 456, 789)])
rdd2 = sc.parallelize([(456, 999)])
df1 = rdd1.toDF()
df2 = rdd2.toDF()
result = df1.join(df2, df1['_2'] == df2['_1'])
result.rdd.map(lambda x: (x[0],x[1],x[2],x[4])).collect()
[(123, 456, 789, 999)]
+0
當我試圖將這段代碼檢查此RDD是否有toDF函數返回false:print hasattr(RDD1,「tdDF」)。如果這些東西已經是RDD,我需要並行嗎? –
+0
我粘貼了Scala代碼..讓我重新發布python版本 –
+0
@DigvijaySawant更新了pyspark版本 –
相關問題
- 1. 如何通過密鑰連接兩個RDD?
- 2. 合併兩個RDD密鑰是不一樣的,但相關的
- 3. lookup rdd其中密鑰來自不同rdd
- 4. 連接兩個相同的密鑰json對象
- 5. Paramiko連接時不詢問SSH密鑰
- 6. 如何刪除RDD的密鑰不在另一個RDD中的行?
- 7. 在SSL套接字連接中使用兩個密鑰對
- 8. 有兩個不同的密鑰
- 9. 有兩個不同的密鑰
- 10. 在兩個巨大的RDD上加入或減去密鑰
- 11. 在不同地點連接ec2實例
- 12. 不同/連接兩個表
- 13. 拼合RDD的密鑰
- 14. 連接兩個包含HashMap,而不同時從地圖
- 15. 加入同一表兩次在不同的密鑰
- 16. 每個密鑰的總RDD值
- 17. MS SQL - 在一個列中使用子串密鑰連接兩個表
- 18. 當前不支持多個同時連接或同一事務內的不同連接字符串的連接
- 19. Django的 - 兩個不同的連接在同一個表
- 20. 如何有效地添加一個新的密鑰到RDD在pyspark
- 21. 當兩個不同的工作簿左連接兩個工作表時,不支持連接表達
- 22. 在同一地點的兩個GridView
- 23. 兩個連接在同一臺
- 24. 使用與用於啓動實例的密鑰不同的另一個密鑰連接到AWS
- 25. 如何在兩個不同的地點
- 26. Pyspark單RDD到RDD的多重RDD密鑰
- 27. 檢查兩個不同字典中的相同密鑰,打印密鑰和兩個值
- 28. 如何關聯兩個不通過密鑰直接連接的mysql表
- 29. Java使用兩個不同密鑰的三重DES加密
- 30. 通過密鑰將多個RDD合併爲一個列
so RDD1由3個元素的元組構成,RDD2由2個元素的元組構成? –
是的..這是正確的..我需要將這2個RDD合併爲4個元素的元組,然後根據最後一個元素減少我最後加入的RDD,在這種情況下,這是999。 –