按时间序列Maphadoop分区

agyaoht7  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(378)

我试图分区我的Map输出的日期,但我没有任何运气。
我的Map输出格式如下:
2012-01-01\t此处显示一些文本
使用keyfieldbasedpartitioner,我尝试按日期对每个Map输出进行分区,因此每年将有365个分区。
以下选项对我不起作用:map.output.key.field.separator=-mapred.text.key.partitioner.options=-k1,3.2#每个reducer与我的键中“day”字段的第二个字符匹配,因此01、11、21和31被发送到同一个reducer)。
有可能把两个字符的组合分开吗?

vu8f3i0k

vu8f3i0k1#

options=-k1,3.2表示使用第一个键字段(在您的示例中为2012)和第三个字段的一部分(\tsome txet)作为分区器。很明显。不是“按日期划分每个Map输出”。也许您可以尝试以下选项: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

相关问题