需求:在某一张 hive 表中需要有一列去唯一标识某一行,有些类似于MySQL
中的自增ID
- row_number()
SELECT row_number() OVER(ORDER BY RAND()) AS sample_key
结果

- UUID
SELECT regexp_replace(reflect("java.util.UUID", "randomUUID"), "-", "") AS sample_key
结果

两种方法对比:使用 row_number() 容易发生数据倾斜
使用UUID的方式可以解决数据倾斜,如果在hive表中null的值过多,也可以使用UUID的方法给null赋值,解决数据倾斜的问题
本文探讨了在Hive表中生成唯一标识符的方法,包括使用row_number()和UUID。row_number()可能引起数据倾斜,而UUID能有效避免此问题,尤其适用于处理大量null值的情况。
3638

被折叠的 条评论
为什么被折叠?



