我在hadoop中有一个表,它有两列包含字符串数据。
所以,对于这样一张table:
+---------+------+
| v1 | v2 |
+---------+------+
| 1 | 2 |
| 1 | 3 |
| 2 | 3 |
| 4 | 5 |
| 6 | 7 |
+---------+------+
现在,我想为每一行添加组id。无论值属于哪个列,具有相同值的行都会获得相同的组id。
就像下面一样。
+---------+------+------+
| v1 | v2 | gid |
+---------+------+------+
| 1 | 2 | 1 |
| 1 | 3 | 1 |
| 2 | 3 | 1 |
| 4 | 5 | 2 |
| 6 | 7 | 3 |
+---------+------+------+
我怎么写才能通过hiveql得到它?
1条答案
按热度按时间gv8xihay1#
一般来说,这就是@gordonlinoff所说的图行走问题,但是如果任务可以简化为您的示例中那样,使用有限的列并具有排序规则(我假设行的顺序是由您的列定义的),那么任务是完全可解的。使用数据集查看此演示,它会生成所需的结果(请阅读代码中的注解):
结果: