hadoop - 需要一种方法来过滤 HIVE 中某个 id 具有多个记录的记录的数据

标签 hadoop group-by hive where-clause bigdata

考虑 HIVE 中的下表:

在这里我需要找出家庭、车辆和客户的独特组合。 但条件是这样的。如果对于同一个家庭和车辆,有两个不同的客户,角色分别是驾驶员和车主,我必须考虑车主。 但是,如果对于一个家庭和车辆来说只有一个客户,并且该客户是驾驶员或车主,我也必须考虑该记录。 我需要 HIVE 查询。

结果应如下表所示:

有人可以帮我吗?

最佳答案

这可能很有用,试试这个:-

select Household,Vehicle,Customer,Cust_role from (select *,row_number() 
over (partition by Household,Vehicle order by Cust_role desc) rn from test_table) tableouter where rn=1;

输出:-

I       1       A       OWNER
II      2       C       DRIVER
III     3       D       OWNER
IV      4       E       OWNER

关于hadoop - 需要一种方法来过滤 HIVE 中某个 id 具有多个记录的记录的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38010962/

相关文章:

hadoop - 为什么combiner的输入记录数比maps的输出数多?

sql - Postgres 选择(按类型分组)

c# - 在 LINQ 中分组时如何显式声明类型?

hadoop - Hive外部表可以检测HDFS中的新Parquet文件吗

sql - hive 中的 with (nolock) 相当于 sql (nolock)

hadoop - 从源代码错误在Centos 7.8上构建Ambari 2.7.5

Hadoop:每个 tar/zip 文件一个映射器

json - 如何将Hive查询结果以json格式存储在文件中?

csv - 使用DBeaver,当尝试将数据从CSV导出到我的Hive数据库时,导出卡住吗?

python - 分组并减去 Pandas 中的列