我有下面提到的标题数据。其中1个组织拥有n
个应用,1个应用拥有n
个用户(不同应用中的用户名相同,意味着不同的用户):
org, app, users, spend_time
现在,我需要找到每个用户,每个应用和每个组织的总和平均花费时间。
最好的方法是什么。
P.S。我目前通过制作(org,app,user)的密钥来找到每个用户的平均花费时间,(org,app)的密钥来找到每个应用的平均花费时间。
答案 0 :(得分:2)
您建议的方法很好。
如果您想对每个数据子集(例如,每个用户)执行任何聚合(例如,求和),您将执行以下操作:
Combine
转换。以下是演示按键Combine
转换的部分代码段:
PCollection<KV<String, Double>> salesRecords = ...;
PCollection<KV<String, Double>> totalSalesPerPerson =
salesRecords.apply(Combine.<String, Double>perKey(
new Sum.SumDoubleFn()));