gpt4 book ai didi

hadoop - 在 map reduce 中解决这个问题的最佳方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 15:17:37 29 4
gpt4 key购买 nike

输入数据集如下所示:

colA,colB,colc,时间

1,2,1,2012-12-22 12:23:30

1,2,3,2012-12-22 12:23:40

1,2,2,2012-12-22 12:24:20

2,3,1,2012-12-22 12:25:30

并且输出将是下一次和当前时间的差值,即(时间+1 - 时间)。请查看输出列以获取更多信息。

colA,colB,colc,时间,输出

1,2,1,2012-12-22 12:23:30,10

1,2,2,2012-12-22 12:23:40,40

1,2,3,2012-12-22 12:24:20,0

2,3,1,2012-12-22 12:25:30,0

非常感谢您的帮助

最佳答案

前两列应该是关键。使用 TextInputFormat 读取输入文本文件。映射器应该发出 Text object这将是 colA_colB。例如。对于数据

1,2,2012-12-22 12:23:30
1,2,2012-12-22 12:23:40
1,2,2012-12-22 12:24:20
2,3,2012-12-22 12:25:30

mapper 会得到 (key, val):

<some long integer X1>, "1,2,2012-12-22 12:23:30"
<some long integer X2>, "1,2,2012-12-22 12:23:40"
<some long integer X3>, "1,2,2012-12-22 12:24:20"
<some long integer X4>, "2,3,2012-12-22 12:25:30"

“某个长整数”只不过是输入文件中行的文件偏移量

Mapper 应该发出下面的(键,值)对类型 Text :

"1_2" , "2012-12-22 12:23:30"
"1_2" , "2012-12-22 12:23:40"
"1_2" , "2012-12-22 12:24:20"
"2_3" , "2012-12-22 12:25:30"

如您所见,前 3 条记录的键是相同的,并且这些记录肯定会最终到达同一个 reducer。 reducer 会得到这个:

"1_2" , ["2012-12-22 12:23:30", "2012-12-22 12:23:40", "2012-12-22 12:24:20"]
"2_3" , ["2012-12-22 12:25:30"]

在 reducer 中,get the String from the Text objects并解析这些以生成 Java Date对象。之后获取 2 个日期之间的差异将是直截了当的。

关于hadoop - 在 map reduce 中解决这个问题的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16855826/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com