区别于Hive中的特定列

时间:2011-09-13 12:25:07

标签: unique distinct hive

我正在运行Hive 071我有一个表,多行,具有相同的列值,例如。

| x | y |


| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 2 | 2 |
| 3 | 2 |
| 3 | 1 |

我希望x列是唯一的,并删除具有相同x值的行,例如

| x | y |


| 1 | 2 |
| 2 | 2 |
| 3 | 2 |

| x | y |


| 1 | 4 |
| 2 | 2 |
| 3 | 1 |

两者都很好,只有在hive的整个rs上才有效,我找不到办法做到这一点

请帮助请Tx

1 个答案:

答案 0 :(得分:5)

一些选项:

1)这将为每个x值提供y的最大值

select x, max(y) from table1 group by x

同样可以使用avg()或min()

2)或者,您可以在列表中收集y的所有值:

select x, collect_set(y) from table1 group by x

这会给你:

x|y
1|2,3,4
2|2
3|1,2