我的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中怎么可能。任何建议都会有很大的帮助。