最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

打開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","飛鶴星飛帆幼兒奶粉","愛他美 幼兒奶粉","李寧運(yùn)動男衛(wèi)褲","小米踏步機(jī)橢圓機(jī)","歐萊雅面膜","御泥坊面膜","歐萊雅男士套裝","金六福白酒","牛欄山42度","茅臺飛天"]
# 銷售訂單
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
#從控制臺中讀取數(shù)據(jù),循環(huán)發(fā)送每行數(shù)據(jù)
for line in sys.stdin:
    #對訂單進(jìn)行拆分
    orders = line.strip().split(":")
    if len(orders) == 2:
        #對訂單中的商品進(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è)空的字典用來每一個(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:
            # 如果有,把字典中的商品和銷量取出來,追加當(dāng)前銷量再放入
            stock_dict[stock] = stock_dict[stock] + int(sales)
        else:
            # 如果沒有,直接把商品和銷量數(shù)據(jù)放入字典中
            stock_dict[stock] = int(sales)
# 遍歷字典列表,獲取每一個(gè)商品的銷量
for stock, sales in stock_dict.items():
    print('%s\t%s' % (stock, sales))

 

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

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

您可能感興趣的文章:

相關(guān)文章

  • Python?Flask?上傳文件測試示例

    Python?Flask?上傳文件測試示例

    這篇文章主要為大家介紹了Python?Flask?上傳文件測試的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • odoo?為可編輯列表視圖字段搜索添加查詢過濾條件的詳細(xì)過程

    odoo?為可編輯列表視圖字段搜索添加查詢過濾條件的詳細(xì)過程

    Odoo 是基于 Python 寫的一系列開源商業(yè)應(yīng)用程序套裝,前身是 OpenERP,這篇文章主要介紹了odoo?為可編輯列表視圖字段搜索添加查詢過濾條件,需要的朋友可以參考下
    2023-02-02
  • 簡單了解python的內(nèi)存管理機(jī)制

    簡單了解python的內(nèi)存管理機(jī)制

    這篇文章主要介紹了簡單了解python的內(nèi)存管理機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python使用Ollama API的詳細(xì)代碼示例

    Python使用Ollama API的詳細(xì)代碼示例

    這篇文章主要介紹了如何在Python中使用OllamaAPI,涵蓋了從環(huán)境準(zhǔn)備、使用方法到高級功能的全面指南,無論是初學(xué)者還是經(jīng)驗(yàn)豐富的開發(fā)者都能從中受益,需要的朋友可以參考下
    2025-02-02
  • Python實(shí)現(xiàn)快速排序的方法詳解

    Python實(shí)現(xiàn)快速排序的方法詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)快速排序的方法,結(jié)合實(shí)例形式詳細(xì)分析了快速排序的思路、原理及Python具體實(shí)現(xiàn)技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • python3將視頻流保存為本地視頻文件

    python3將視頻流保存為本地視頻文件

    這篇文章主要為大家詳細(xì)介紹了python3將視頻流保存為本地視頻文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 使用DataFrame刪除行和列的實(shí)例講解

    使用DataFrame刪除行和列的實(shí)例講解

    下面小編就為大家分享一篇使用DataFrame刪除行和列的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python特殊字符作為字符串不轉(zhuǎn)義的問題

    python特殊字符作為字符串不轉(zhuǎn)義的問題

    這篇文章主要介紹了python特殊字符作為字符串不轉(zhuǎn)義的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • web自動化測試Selenium點(diǎn)擊元素的常用方法

    web自動化測試Selenium點(diǎn)擊元素的常用方法

    在Web自動化測試中,Selenium提供多種點(diǎn)擊方法,常用的click()方法通過選中元素并觸發(fā)點(diǎn)擊事件,若click()方法不穩(wěn)定,可以采用JavaScript執(zhí)行點(diǎn)擊或使用ActionChains類模擬鼠標(biāo)點(diǎn)擊,需要的朋友可以參考下
    2024-09-09
  • python學(xué)習(xí)筆記:字典的使用示例詳解

    python學(xué)習(xí)筆記:字典的使用示例詳解

    python字典的使用: python字典有很多好用的地方。字典每個(gè)元素都有鍵和值。如同現(xiàn)代漢語字典中的拼音和對應(yīng)的文字。字典中的鍵是唯一的,而值不一定唯一。你看,和現(xiàn)代漢語字典多么的相似。
    2014-06-06

最新評論

黄冈市| 安陆市| 沂水县| 新乐市| 夹江县| 伊金霍洛旗| 万安县| 岚皋县| 元阳县| 昌黎县| 南涧| 吐鲁番市| 云和县| 凤山县| 勃利县| 蒲城县| 沧源| 南岸区| 丰县| 四子王旗| 伊金霍洛旗| 加查县| 新安县| 叶城县| 安国市| 庆阳市| 栾城县| 安庆市| 濉溪县| 铜山县| 宁海县| 博爱县| 呼玛县| 元朗区| 迭部县| 微山县| 平利县| 梁平县| 丽江市| 自贡市| 南乐县|