我对我的数据模型感到困惑。i、 e如果我需要使用udaf来解决这个问题,以及在分解任务时hive如何处理这个问题。
问题陈述:我需要根据30天内的事件计算每个用户的平均值(与现有版本略有不同,因此需要自定义公式)。所以我的数据是这样的:
用户ID日期计数
用户1第30天34
用户1第30天23
用户1第4天22
用户1第21天
用户2第30天23
用户2第23天12
用户。。。。
我需要的输出如下:
用户1平均值:(34+23+22+21…)/30
用户2平均值:(23+12…)/30
解决这个问题最有效的方法是什么?我可能需要使用一个自定义项,但是对于一个有很多行的用户这是如何工作的呢?udaf是按用户处理这个问题,还是我需要做一些类似于限制reducer中与一个用户相关的所有行的事情。谢谢!
1条答案
按热度按时间06odsfpq1#
我不知道这里的挑战是什么,我使用的样本数据如下:
下表是定义
查询结果是:
输出
如果我的假设是错的,请告诉我。