<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
MapReduce是一種程式設計模型,用於大規模資料集(大於1TB)的並行運算。概念"Map(對映)"和"Reduce(歸約)",是它們的主要思想,都是從函數語言程式設計語言裡借來的,還有從向量程式語言裡借來的特性。它極大地方便了程式設計人員在不會分散式並行程式設計的情況下,將自己的程式執行在分散式系統上。 當前的軟體實現是指定一個Map(對映)函數,用來把一組鍵值對對映成一組新的鍵值對,指定並行的Reduce(歸約)函數,用來保證所有對映的鍵值對中的每一個共用相同的鍵組。
下面就通過手動實現MapReduce編碼統計銷售數量的例子來模擬。
開啟Python3線上程式設計網址:
http://www.dooccn.com/python3/
#!/usr/bin/python # -*- coding: utf-8 -*- import random # 模擬商品 stocks = ["HUAWEI Mate40","Apple iphone13","Apple MacBook Pro 14","ThinkBook 14p","RedmiBook Pro14","飛鶴星飛帆幼兒奶粉","愛他美 幼兒奶粉","李寧運動男衛褲","小米踏步機橢圓機","歐萊雅面膜","御泥坊面膜","歐萊雅男士套裝","金六福白酒","牛欄山42度","茅臺飛天"] # 銷售訂單 sales_list = list() # 生成100個買家訂單,每個訂單三個商品 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)
將第一步的結果作為第二步的輸入。
#!/usr/bin/python # -*- coding: utf-8 -*- import sys #從控制檯中讀取資料,迴圈傳送每行資料 for line in sys.stdin: #對訂單進行拆分 orders = line.strip().split(":") if len(orders) == 2: #對訂單中的商品進行拆分 stocks = orders[1].split(",") for stock in stocks: #將每一個商品作為key,value進行輸出 print('%s,%s' % (stock,1))
將第二步的結果作為第三步的輸入。
#!/usr/bin/python # -*- coding: utf-8 -*- import sys # 建立一個空的字典用來每一個商品的銷售資料 stock_dict = dict() for line in sys.stdin: if len(line.strip()) >= 1: # 拆分每一行的商品,銷量 stock, sales = line.split(',') # 判斷當前商品是否在字典中有存放 if stock in stock_dict: # 如果有,把字典中的商品和銷量取出來,追加當前銷量再放入 stock_dict[stock] = stock_dict[stock] + int(sales) else: # 如果沒有,直接把商品和銷量資料放入字典中 stock_dict[stock] = int(sales) # 遍歷字典列表,獲取每一個商品的銷量 for stock, sales in stock_dict.items(): print('%st%s' % (stock, sales))
這樣就實現了簡單的銷售統計。
到此這篇關於Python使用MapReduce程式設計模型統計銷量的文章就介紹到這了,更多相關Python MapReduce內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45