Re: [問題] spark 資料減去平均值
※ 引述《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://www.ptt.cc/bbs/Python/M.1538396778.A.EED.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):