[問題] pyspark mapPartitions

看板Python作者 (881 forever)時間9年前 (2016/12/06 18:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
各位大大好 下面是小的在玩mapPartitions時的程式片段、執行結果以及問題 測試環境: --master local[*] 程式片段: rdd = sc.parallelize([ [1, 2, 3], [3, 2, 4], [5, 2, 7] ] , 10) def test(partitions): yield 1 #workable #return 1 #error #return [1] #workable rdd_test = rdd.mapPartitions(test) s = rdd_test.collect() print s print rdd_test.getNumPartitions() 結果: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 10 問題: 似乎如果要將每個partition映射成一個value輸出時(上面是以value=1為例) 都需要用yield value,不能像map一樣直接用return。如果要用return,就要弄成 return [value]。我目前測試的結果是這兩種方式最後用collect會產生相同的結果。 這背後的道理以及原因是什麼啊? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.35.20 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1481019366.A.D57.html
文章代碼(AID): #1OHe_crN (Python)
文章代碼(AID): #1OHe_crN (Python)