需求:在某一张 hive 表中需要有一列去唯一标识某一行,有些类似于MySQL
中的自增ID

  1. row_number()
      SELECT row_number() OVER(ORDER BY RAND()) AS sample_key

结果
Hive表创建唯一标识列

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

结果
Hive表创建唯一标识列

两种方法对比:使用 row_number() 容易发生数据倾斜
使用UUID的方式可以解决数据倾斜,如果在hive表中null的值过多,也可以使用UUID的方法给null赋值,解决数据倾斜的问题

相关文章:

  • 2021-11-27
  • 2021-07-14
  • 2021-07-08
  • 2022-02-01
  • 2022-12-23
  • 2021-05-24
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
  • 2021-09-03
  • 2022-12-23
  • 2021-10-13
  • 2021-11-22
相关资源
相似解决方案