1

从这里开始是一些示例数据

样本输入

ID      Date                   Value
10      2012-06-01 00:01:45    20
10      2012-06-01 00:01:51    12
10      2012-06-01 00:01:56    21
10      2012-06-01 00:02:01    43
10      2012-06-01 00:02:06    12
17      2012-06-01 00:02:43    64
17      2012-06-01 00:02:47    53
17      2012-06-01 00:02:52    23
17      2012-06-01 00:02:58    45
17      2012-06-01 00:03:03    34

期望的输出

ID      Date
10      2012-06-01 00:01:45    2012-06-01 00:02:06    20    12
17      2012-06-01 00:02:43    2012-06-01 00:03:03    64    34

所以我希望将第一个和最后一个日期以及两者的值放在一行中。我表中的 ID 值在以后也会有其他条目,所以我只想获取第一个和最后一个条目链。每个条目相隔 5 秒。如果它们更大,那么它是一个新的链。

有什么建议么?

谢谢

4

2 回答 2

0

我刚刚开始搜索这个过程,但它看起来LATERAL VIEWEXPLODE加上一个或两个用户定义的函数是你的朋友。

于 2013-05-29T21:42:59.410 回答
0

我最终创建了一个 MapReduce 作业来处理我的数据的 csv 文件,而不是使用 hive。

我根据 ID“映射”。然后设置一个参数,如果数据超过 2 小时,我将它们分开。

最后,很容易破解 MapReduce 代码,然后考虑 Hive 查询。

于 2013-05-29T21:48:09.400 回答