如何删除单元格 Hive 表中的重复值

Posted

技术标签:

【中文标题】如何删除单元格 Hive 表中的重复值【英文标题】:how to remove duplicate value in a cell Hive table 【发布时间】:2021-05-06 09:10:05 【问题描述】:

我的 Hive SQL 表中有一个列,其中每个单元格的值用逗号 (,) 分隔。此字符串中的某些值是重复的,我想删除它们。这是我的数据示例:

test, test1, test,test1
rest,rest1,rest1,rest    
chest,nest,lest,gest

结果应替换所有重复项:

 test,test1      
rest,rest1       
chest,nest,lest,gest

我想删除重复项。谁能帮我解决这个问题?

谢谢

【问题讨论】:

黑斑羚还是蜂巢?它们非常不同 在 Hive 中会更理想。谢谢。 谢谢。此解决方案有效。 如果可行,请接受/投票 【参考方案1】:

Hive 解决方案。 拆分获取数组,分解,使用collect_set获取不重复的数组,使用concat_ws连接数组。

演示(Hive):

with your_table as(
select stack(3,
1, 'test, test1, test,test1',
2, 'rest,rest1,rest1,rest',   
3, 'chest,nest,lest,gest'
) as (id,  colname)
)

select t.id, t.colname, concat_ws(',',collect_set(trim(e.elem))) result
  from your_table t
       lateral view outer explode(split(colname,',')) e as elem
group by t.id, t.colname

trim() 用于删除数据示例中存在的空格。

结果:

t.id    t.colname                 result    
1       test, test1, test,test1   test,test1
2       rest,rest1,rest1,rest     rest,rest1
3       chest,nest,lest,gest      chest,nest,lest,gest

【讨论】:

以上是关于如何删除单元格 Hive 表中的重复值的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 MUI 表中单元格之间的线条

连续删除重复的单元格

如何删除配置单元表记录?

定期删除重复的单元格

如何删除两个excel表中的重复数据

从两个配置单元表中删除重复数据