0
A
回答
1
如果我假設你的初始輸入是在一個文本文件中,那麼你可以調用兩個這樣的地圖函數:
data = sc.textFile("textfile_location")
data = data.map(lambda line: (line.split(":")[0], line.split(":")[1].split()))
data = data.flatMap(lambda key, values: [(key, value) for value in values])
1
我對RDD的工作原理並不十分清楚,但你說它可以變成dict
。所以我們可以說,你有以下字典:
d = {1: [6, 7], 2: [5]}
而且假設你想寫一個信息到一個文件:
1 6
1 7
2 5
這是可以實現如下:
with open('path/to/output', 'w') as outfile:
for k in sorted(d):
for v in d[k]:
outfile.write("{}\t{}\n".format(k, v))
+0
可以使用lambda表達式來完成 – mhn
+0
@mhn:使用lambda表達式可以做什麼?我想要用lambda替換哪部分代碼? – inspectorG4dget
相關問題
- 1. Spark,Scala - 從rdd映射輸出
- 2. 如何獲得AutoMapper映射?
- 3. 如何在一個映射器中獲得多個輸出(k,v)?
- 4. 如何在本地映射RDD?
- 5. 如何獲得AutoMapper使用接口映射,具體映射
- 6. 如何獲得索引別名映射
- 7. symfony2如何獲得映射表的ID?
- 8. 如何獲得TreeSet的逆映射
- 9. 如何獲得動態映射封
- 10. 從映射器輸出獲得前N項 - MapReduce的
- 11. 如何獲得grep的每條輸出行的長度
- 12. 我如何獲得多映射在Dapper中工作?
- 13. 如何獲取映射器輸出字節計數器
- 14. 'SUM()' 中的輸出映射
- 15. hadoop過濾映射輸出
- 16. 如何獲得單獨的RDD爲每個鍵進入
- 17. 如何獲得與輸出
- 18. 如何獲得輸出proc_open()
- 19. 如何獲得輸出?
- 20. 具有多行作爲輸出的HBase映射器
- 21. 獲得來自RDD
- 22. scala.MatchError上數據幀映射到RDD
- 23. 映射到Spark中的RDD的方法
- 24. Cogroup 5 RDD(獲得Tuple5或更多)
- 25. 如何從多重映射
- 26. Spark - 如何使用有狀態映射器對排序的RDD進行平面映射?
- 27. '輸入/輸出'端口如何映射到內存中?
- 28. 如何將rdd的列表轉換爲python映射?
- 29. 如何過濾依賴哈希映射的RDD?
- 30. 如何在Spark中的RDD之間共享全局映射值?
這仍然不能告訴我們輸入是什麼樣的數據結構,以及你如何處理它。例如,它是一個字典(什麼是鍵和值)?或者它是一個文本文件?或者它是一個字符串?或... – inspectorG4dget
它實際上是一個RDD。但是字典的邏輯也可以適用於RDD – mhn
[flatMap引發錯誤-unicode項可能有重複項沒有屬性flatMap](http://stackoverflow.com/questions/33540559/flatmap-throws-error-unicode -item-does-not-have-attribute-flatmap) – zero323