我现在有交易有以下的列的列表:在1计数多个按键的MapReduce
TradeID, SellerID, FishType, Price, Qty
我希望得到
- 每个SellerID
- 的的计数数量每个鱼类型号
目前,我已经写输出< FishType,数量>映射器以便总结数量每个FishType。但是,要获得SellerID的计数,是否必须编写单独的mapreduce任务?还是有一种方法让我在同一个mapreduce任务中这样做?
我已经考虑过使用计数器,但是在编码的时候,记录中的sellerID在我看来是未知的,并且可能有太多无法跟踪使用计数器。在我看来,这也是对Counter功能的滥用。
请指教。
我一直在想你的“前缀”解决方案。虽然我不明白为什么这不起作用,但我担心它是否实际上破坏了MapReduce框架的整体目的。由于该框架将不能对中间密钥进行正确的分组和排序,即,这些密钥基本上不是由FishType或SellerID排序的,所以这些密钥将不会连续地馈送到缩减器中,因此导致分离的输出。 – Deyang
“F:Salmon”所有的东西都会发送到同一个减速器,并且会一起分析。这是你脱节的意思吗?你在这里所做的只是重载键空间来一次执行两个任务。 –
啊,你是对的。仍然试图将我的头围绕整个mapreduce框架。谢谢。 – Deyang