如果你了解雲計算的最重要的計算框架mapreduce,你就對python提供的map和reduce物件有很好的理解,在大資料面前,單機計算愈加力不從心,分布式計算也就是後來的雲計算的框架擔當大任,它提高了效率、節省了時間,但是計算量並沒有減少。有點類似分久必合,合久必分的趨勢。map就是對任務分發,實現分布式計算,reduce就是把分布式計算的結果進行聚合。
map和reduce過程像是為控制新型肺炎而建設的火神山、雷神山醫院的建設過程,如果建設承建集團用乙個10人建設隊竣工需要建設600天的話,理想情況下找來100個這樣的建設隊把工期就可縮短為6天。map過程就是由承建方把任務分給100個建設隊分好任務去建設,reduce就是把各自建設好的工程再整合起來統一交付給承建方。
談到雲計算的起源,就不得不提google的三駕馬車:google fs、mapreduce、bigtable。雖然google沒有公布這三個產品的原始碼,但是他發布了這三個產品的詳細設計**,奠定了風靡全球的大資料演算法的基礎!
2023年公布的 mapreduce**,**描述了大資料的分布式計算方式,主要思想是將任務分解然後在多台處理能力較弱的計算節點中同時處理,然後將結果合併從而完成大資料處理。
返回乙個將 function 應用於 iterable 中每一項並輸出其結果的迭代器。如果傳入了額外的 iterable 引數,function 必須接受相同個數的實參並被應用於從所有可迭代物件中並行獲取的項。當有多個可迭代物件時,最短的可迭代物件耗盡則整個迭代就將結束。
它的第乙個引數是乙個函式的名字,後面是乙個可迭代物件。
舉例說明,比如我們有乙個函式f(x)=x*x,要把這個函式作用在乙個list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()實現如下:現在,我們用python**實現:
map()傳入的第乙個引數是f,即函式物件本身。由於結果r是乙個iterator,iterator是惰性序列,因此通過list()函式讓它把整個序列都計算出來並返回乙個list。
實戰:請利用map()函式,把乙個list(包含若干不規範的英文名字)變成乙個包含規範英文名字的list
任務假設使用者輸入的英文名字不規範,沒有按照首字母大寫,後續字母小寫的規則,請利用map()函式,把乙個list(包含若干不規範的英文名字)變成乙個包含規範英文名字的list:
輸入:['adam', 'lisa', 'bart']
輸出:['adam', 'lisa', 'bart』]
1結果:deff(s):
2 s1 = s[0:1].upper() +s[1:].lower()
3returns14
print(list(map(f,['
jake
','joe
'])))
['jake', 'joe']
常用的內建物件
new date new date month dd,yyyy hh mm ss new date yyyy,mth,dd,hh,mm,ss new date yyyy,mth,dd new date ms getdate 從date物件返回乙個月中的某一天 1 31 getday 從date物件返...
js常用內建物件之 Date
1 建立例項 1 建立儲存當前 系統的日期和時間 var date new date 2 建立時間字串來指定時間 vardate new date datestring datestring為乙個表示時間的字串,它的格式為 month day,year minutes seconds 其中引數mon...
Python常用的內建函式(物件操作)
class objectoperator unittest.testcase 返回物件或者當前作用域內的屬性列表 def test dir self print dir math 返回物件的唯一識別符號 位址值 def test id self a hello world print id a 獲取...