成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python實現(xiàn)mapreduce模式的例子

CoreDump / 1328人閱讀

摘要:當前的軟件實現(xiàn)是指定一個映射函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的歸納函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組。下面使用模式實現(xiàn)了一個簡單的統(tǒng)計日志中單詞出現(xiàn)次數(shù)的程序

MapReduce是一種從函數(shù)式編程語言借鑒過來的模式,在某些場景下,它可以極大地簡化代碼。先看一下什么是MapReduce:

MapReduce是Google提出的一個軟件架構,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。概念“Map(映射)”和“Reduce(歸納)”,及他們的主要思想,都是從函數(shù)式編程語言借來的,還有從矢量編程語言借來的特性。
當前的軟件實現(xiàn)是指定一個Map(映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(歸納)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組。
簡單來說,MapReduce就是把待處理的問題分解為Map和Reduce兩個部分。而待處理的數(shù)據(jù)作為一個序列,每一個序列里的數(shù)據(jù)通過Map的函數(shù)進行運算,再通過Reduce的函數(shù)進行聚合成最終的結果。

下面使用mapreduce模式實現(xiàn)了一個簡單的統(tǒng)計日志中單詞出現(xiàn)次數(shù)的程序:

from functools import reduce
from multiprocessing import Pool
from collections import Counter

def read_inputs(file):
    for line in file:
        line = line.strip()
        yield line.split()

def count(file_name):
    file = open(file_name)
    lines = read_inputs(file)
    c = Counter()
    for words in lines:
        for word in words:
            c[word] += 1
    return c

def do_task():
    job_list = ["log.txt"] * 10000
    pool = Pool(8)
    return reduce(lambda x, y: x+y, pool.map(count, job_list))

if __name__ == "__main__":
    rv = do_task()

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/44275.html

相關文章

  • PySpark SQL 相關知識介紹

    摘要:大數(shù)據(jù)除了體積和速度外,數(shù)據(jù)的多樣性和準確性也是大數(shù)據(jù)的一大特點。這些也被稱為大數(shù)據(jù)的特征。介紹是一個解決大數(shù)據(jù)問題的分布式可伸縮的框架。介紹計算的模型最早出現(xiàn)在谷歌的一篇研究論文中。相關鏈接介紹是一個通用的分布式編程框架。 本文作者:foochane?本文鏈接:https://foochane.cn/article/2019060601.html 1 大數(shù)據(jù)簡介 大數(shù)據(jù)是這個時代最...

    CoderStudy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<