我正在尝试按日期对地图输出进行分区,但是我没有运气。
我的地图输出格式为:
2012-01-01 \ tsome text here
使用KeyFieldBasedPartitioner,我试图按日期对每个地图输出进行分区,因此每年将有365个分区。
以下选项对我不起作用: map.output.key.field.separator = - mapred.text.key.partitioner.options = -k1,3.2 #Each reducer匹配我的密钥中'day'字段的第二个字符,因此01,11,21和31被发送到同一个reducer)。
是否可以分割两个字符的组合?
答案 0 :(得分:0)
mapred.text.key.partitioner.options = -k1,3.2表示使用第一个键字段(在您的示例中为2012)和第三个字段(\ tsome txet)的一部分作为分区程序。明显。它不是“按日期划分每个地图输出”。 也许您可以尝试以下选项: map.output.key.field.separator = \ t mapred.text.key.partitioner.options = -k1
仅供参考:http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/lib/KeyFieldBasedPartitioner.html