Python 的 map 和 reduce 和 Hadoop 的 MapReduce 有什麼關係?

時間 2021-05-31 14:12:23

1樓:FRANK

MapReduce是乙個計算模型,它的思想是從函式式程式設計裡借鑑的。MapRuduce就是把對於資料的操作轉換為對映和歸約。

map和reduce兩個函式是用來操作集合的函式,因為Python寫起來非常彆扭,這裡用F#示範,map相當於為集合的每乙個元素應用函式f,map的定義是

letrec

mapf

list

=match

list

with|

->|a::b

->f(

a)::

mapf

breduce是把集合相鄰的元素進行處理,reduce的定義letreduce

reduction

list

=match

list

with|

->invalidArg

"list"(SR

.GetString(SR

.inputListWasEmpty))|h::

t->fold

reductionht

使用map和reduce的例子

letsum

list

=list

|>map(

funx

->x|>reduce

(fun

x->funy

->x+

y))|>

reduce

(fun

x->funy

->x+y)

2樓:圓胖腫

就好比你問vert.x和圖論裡面的node/vertex什麼關係一樣tim fox用圖論裡面的vertex來給這個工具命名再通俗一點解釋,就好比中國的航母叫做山東號一樣

3樓:馬鵬瑋

關係就是都是基於Map-Reduce的處理思想設計出來的。

從使用者角度看功能其實差不多,

Python的Map函式和Hadoop的Map階段對輸入進行逐行處理;

Python的Reduce函式和Hadoop的Reduce階段對輸入進行累積處理。

但是其實完整的Hadoop MapReduce是Map+Shuffle+Sort+Reduce過程。

其中Shuffle過程是為了讓分布式機群之間將同Key資料進行互相交換,Sort過程是根據Key對所有資料進行排序,從而才能完成類WordCount功能,而這兩步在Python裡面當然是需要使用者自己去編寫的。

4樓:黃浩松

hadoop map階段所做的事模擬於 python map

hadoop reduce階段所做的事模擬於 python groupby

但只是模擬,hadoop map階段和reduce階段有更具體細節的不同步驟,兩者牛頭無法對上馬嘴。

5樓:大魔頭-諾鐵

看我這篇部落格吧

《Python 核心程式設計》和《Python 學習手冊》哪一本更適合零基礎初學者?為什麼?

TRINITY 我想沒有哪本書像learning python一樣前100多頁都沒有講一點python的語法,這本書從python的特點,從執行方式,從PVM 之前的入門教程裡從來沒提到過這玩意 講起,對於每個部分能多詳細就多詳細。其他的python教程大同小異,但是沒有一本能像這本書一樣 Inuy...

python的method和function有什麼區別?

我的姓我的名 初學python,完全不懂物件導向程式設計。後來發現function是函式,呼叫方式是 y f x method是方法,呼叫方式是 y x.f 好像在某些編譯環境可以用這種形式 in n x.f out n balabala 真心不習慣這種。 財報妹 method 一定是 functi...

目標檢測中的mAP是什麼含義?

tveek 目標檢測這個評價方式好複雜.為什麼不可以用 準確率 檢測成功的個數 真實框的個數 誤識別框的個數 檢測成功 iou 大於某個閥值且類別相同,檢測成功.誤識別 不在ground truth中,但被檢測出來的那部分 這裡首先介紹幾個常見的模型評價術語,現在假設我們的分類目標只有兩類,計為正例...