Hive中的自定义计算

时间:2015-09-22 07:49:34

标签: hadoop hive bigdata

我的hive表格中包含以下数据。

    A           B       C       D   E
1   prashant   11980   1000   -50   25
2   siva       11980   1500   -25   20
3   prateek    11980   1200   -20   70
4   rahul      12001   2000   -80   20
5   rajesh     12202   2100   -25   10
6   ankit      12201   1700   -70   20
7   alok       12203   4000   -30   100

我需要通过一些计算(如下所示)将数据从此表获取到另一个hive表。正如您所看到的,它有一个额外的列,应根据上述计算获取数据。基本上这个概念是 - 将一行计算输出作为下一行的输入,依此类推。

    A           B       C       D   E   F
1   prashant   11980   1000   -50   25  E1-D1
2   siva       11980   1500   -25   20  F1-D2
3   prateek    11980   1200   -20   70  F2-D3
4   rahul      12001   2000   -80   20  F3-D4
5   rajesh     12202   2100   -25   10  F4-D5
6   ankit      12201   1700   -70   20  F5-D6
7   alok       12203   4000   -30   100 F6-D7

我尝试为此编写UDAF,但似乎无法正常工作,因为我无法看到任何方法在迭代到下一行时获取最后一行值,然后不确定terminatePartial()和merge()函数如何工作以防万一多个地图任务。

坚持这一点。

我还想过把数据带到一个文本文件然后在它上面运行mapreduce作业,但它有点复杂,因为在多个地图任务的情况下计算会混淆。

不确定在hadoop中怎么可能。任何建议都会有很大的帮助。

0 个答案:

没有答案