gpt4 book ai didi

hadoop - Hive中如何处理主键检查?

转载 作者:行者123 更新时间:2023-12-02 21:18:36 24 4
gpt4 key购买 nike

我必须每天一次将增量负载加载到我的基表(例如table_stg)中。我每天从各种来源以xml格式获取数据快照。 id列应该是唯一的,但是由于数据来自不同的来源,因此存在重复数据的机会。

第1天:
table_stg
id,col2,col3,ts,col4
1,a,b,2016-06-24 01:12:27.000532,c
2,e,f,2016-06-24 01:12:27.000532,k
3,a,c,2016-06-24 01:12:27.000532,l

day2 :(例如,如下所示解析xml并将其加载到table_inter中)

id,col2,col3,ts,col4
4,a,b,2016-06-25 01:12:27.000417,l
2,e,f,2016-06-25 01:12:27.000417,k
5,w,c,2016-06-25 01:12:27.000417,f
5,w,c,2016-06-25 01:12:27.000417,f

当我将此数据放入table_stg时,我的最终输出应为:
id,col2,col3,ts,col4
1,a,b,2016-06-24 01:12:27.000532,c
2,e,f,2016-06-24 01:12:27.000532,k
3,a,c,2016-06-24 01:12:27.000532,l
4,a,b,2016-06-25 01:12:27.000417,l
5,w,c,2016-06-25 01:12:27.000417,f

处理此类情况的最佳方法是什么(无需删除table_stg(基本表)并重新加载整个数据)

最佳答案

Hive确实允许主键和唯一键重复。在将数据加载到Hive表之前,您应该有一个上游工作来进行数据清理。
如果数据较少,则可以为此编写python脚本;如果数据量很大,则可以使用spark。
spark提供了dropDuplicates()方法来实现此目的。

关于hadoop - Hive中如何处理主键检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38057697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com