我在 hadoop 中遇到此问题。
我有一个用户活动列表。每个用户每天可以参加不同的课程。我想要计算每个用户为每个班级服务的课程数量。
例如,假设有不明数量的类。 User A
需要class A
次10次,class B
次2次,class C
次3次。我希望有一个数据集,其中包含每个用户每个类的类数量
我每个用户都有每日记录。例如
Day 1, User A , Class A
Day 1, User A, Class B
Day 1, User B, Class A
Day 2, User A Class C
Day 2, User B Class C
Day 3, User A Class A.
我可以使用映射器逐行读取这些行,然后将用户用作键,将类用作值。但我知道只有键被排序而不是值。所以我也需要对这些值进行计数。
有没有办法做嵌套键值对?
答案 0 :(得分:0)
您可以做的是您可以定义自己的自定义数据类型,而不是使用内置数据类型。在自定义数据类型中,包括设置所需的值并覆盖compareTo()
方法,以便Hadoop可以在内部比较它们并对它们进行排序。那你的问题应该解决了。