欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用MapReduce編程模型統(tǒng)計(jì)銷量

 更新時(shí)間:2022年04月22日 09:04:28   作者:SAP劍客  
MapReduce是面向大數(shù)據(jù)并行處理的計(jì)算模型、框架和平臺(tái),是一種計(jì)算引擎,可以把我們對(duì)大批量數(shù)據(jù)的計(jì)算通過(guò)抽象成map與reduce兩個(gè)子任務(wù)進(jìn)行計(jì)算從而更快的得到想要的結(jié)果

MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數(shù)式編程語(yǔ)言里借來(lái)的,還有從矢量編程語(yǔ)言里借來(lái)的特性。它極大地方便了編程人員在不會(huì)分布式并行編程的情況下,將自己的程序運(yùn)行在分布式系統(tǒng)上。 當(dāng)前的軟件實(shí)現(xiàn)是指定一個(gè)Map(映射)函數(shù),用來(lái)把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(歸約)函數(shù),用來(lái)保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。

下面就通過(guò)手動(dòng)實(shí)現(xiàn)MapReduce編碼統(tǒng)計(jì)銷售數(shù)量的例子來(lái)模擬。

打開(kāi)Python3在線編程網(wǎng)址:

http://www.dooccn.com/python3/

1、生成模擬數(shù)據(jù)

#!/usr/bin/python
# -*- coding: utf-8 -*-
import random
# 模擬商品
stocks = ["HUAWEI Mate40","Apple iphone13","Apple MacBook Pro 14","ThinkBook 14p","RedmiBook Pro14","飛鶴星飛帆幼兒奶粉","愛(ài)他美 幼兒奶粉","李寧運(yùn)動(dòng)男衛(wèi)褲","小米踏步機(jī)橢圓機(jī)","歐萊雅面膜","御泥坊面膜","歐萊雅男士套裝","金六福白酒","牛欄山42度","茅臺(tái)飛天"]
# 銷售訂單
sales_list = list()
# 生成100個(gè)買家訂單,每個(gè)訂單三個(gè)商品
for i in range(100):
    sstocks = list()
    for j in range(3):
        sstocks.append(stocks[random.randint(0,14)])
    a = "買家" + str(i+1) + ":" + ",".join(sstocks)
    print(a)

2、mapper實(shí)現(xiàn)

將第一步的結(jié)果作為第二步的輸入。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
#從控制臺(tái)中讀取數(shù)據(jù),循環(huán)發(fā)送每行數(shù)據(jù)
for line in sys.stdin:
    #對(duì)訂單進(jìn)行拆分
    orders = line.strip().split(":")
    if len(orders) == 2:
        #對(duì)訂單中的商品進(jìn)行拆分
        stocks = orders[1].split(",")
        for stock in stocks:
            #將每一個(gè)商品作為key,value進(jìn)行輸出
            print('%s,%s' % (stock,1))

3、reducer實(shí)現(xiàn)

將第二步的結(jié)果作為第三步的輸入。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
# 創(chuàng)建一個(gè)空的字典用來(lái)每一個(gè)商品的銷售數(shù)據(jù)
stock_dict = dict()
for line in sys.stdin:
    if len(line.strip()) >= 1:
        # 拆分每一行的商品,銷量
        stock, sales = line.split(',')
        # 判斷當(dāng)前商品是否在字典中有存放
        if stock in stock_dict:
            # 如果有,把字典中的商品和銷量取出來(lái),追加當(dāng)前銷量再放入
            stock_dict[stock] = stock_dict[stock] + int(sales)
        else:
            # 如果沒(méi)有,直接把商品和銷量數(shù)據(jù)放入字典中
            stock_dict[stock] = int(sales)
# 遍歷字典列表,獲取每一個(gè)商品的銷量
for stock, sales in stock_dict.items():
    print('%s\t%s' % (stock, sales))

 

這樣就實(shí)現(xiàn)了簡(jiǎn)單的銷售統(tǒng)計(jì)。

到此這篇關(guān)于Python使用MapReduce編程模型統(tǒng)計(jì)銷量的文章就介紹到這了,更多相關(guān)Python MapReduce內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Python中Pickle模塊和base64模塊的使用解析

    Python中Pickle模塊和base64模塊的使用解析

    這篇文章主要介紹了Python中Pickle模塊和base64模塊的使用解析,pickle模塊是python的標(biāo)準(zhǔn)模塊,提供了對(duì)于python數(shù)據(jù)的序列化操作,可以將數(shù)據(jù)轉(zhuǎn)換為bytes類型,其序列化速度比json模塊要高,需要的朋友可以參考下
    2023-09-09
  • 詳解PyTorch中Tensor的高階操作

    詳解PyTorch中Tensor的高階操作

    這篇文章主要介紹了詳解PyTorch中Tensor的高階操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python語(yǔ)言中有算法嗎

    python語(yǔ)言中有算法嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于python里算法的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • python實(shí)現(xiàn)批量按比例縮放圖片效果

    python實(shí)現(xiàn)批量按比例縮放圖片效果

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量按比例縮放圖片效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 一文帶你精通Python中exec函數(shù)的高級(jí)技巧

    一文帶你精通Python中exec函數(shù)的高級(jí)技巧

    在?Python?中,exec?是一個(gè)內(nèi)置函數(shù),允許在運(yùn)行時(shí)動(dòng)態(tài)執(zhí)行?Python?代碼,本文將詳細(xì)介紹?Python?exec?函數(shù)的高級(jí)用法,包括動(dòng)態(tài)代碼生成、執(zhí)行外部文件等內(nèi)容,希望對(duì)大家有所幫助
    2023-11-11
  • 全面了解Python的getattr(),setattr(),delattr(),hasattr()

    全面了解Python的getattr(),setattr(),delattr(),hasattr()

    下面小編就為大家?guī)?lái)一篇全面了解Python的getattr(),setattr(),delattr(),hasattr()。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 一文帶你探尋Python中的迭代器

    一文帶你探尋Python中的迭代器

    你知道for...in是底層原理是什么樣的么?這篇文章就來(lái)和大家詳細(xì)講一講Python中迭代器的的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-04-04
  • Python輸出列表(List)不帶中括號(hào)和引號(hào)的問(wèn)題及解決方法

    Python輸出列表(List)不帶中括號(hào)和引號(hào)的問(wèn)題及解決方法

    這篇文章主要介紹了Python輸出列表(List)不帶中括號(hào)和引號(hào)的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • 利用Python讀取txt文檔的方法講解

    利用Python讀取txt文檔的方法講解

    今天小編就為大家分享一篇利用Python讀取txt文檔的方法講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 詳解python之簡(jiǎn)單主機(jī)批量管理工具

    詳解python之簡(jiǎn)單主機(jī)批量管理工具

    這篇文章主要介紹了詳解python之簡(jiǎn)單主機(jī)批量管理工具,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01

最新評(píng)論