作者thefattiger (LawTea)
看板Python
标题Re: [问题] spark 资料减去平均值
时间Mon Oct 1 20:26:15 2018
※ 引述《comeonbaby (来巴宝贝)》之铭言:
: 目前资料已分成一串tuple存在RDD里面 (ID, Data)
: 目前想做的是将Data值减去其ID的Data平均值
: 例如: (1,10) (1,20) (2,10) 跑完後会变成
: (1,-5) (1,5) (2,0) 这样
: 因为刚接触不太清楚该怎麽实作
没用过Spark,但看起起来跟它无关
from collections import defaultdict
x = [(1,10),(1,20),(2,10)] #your data
avg = defaultdict(lambda:[0,0])
for ID,data in x:
avg[ID][0] = (avg[ID][0]*avg[ID][1] + data)/(avg[ID][1]+1)
avg[ID][1] += 1
y = list(map(lambda s:(s[0],s[1]-avg[s[0]][0]),x)) #result
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 58.114.212.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1538396778.A.EED.html