“rand()`函数在配置单元中的精度是多少?”?

dsekswqp  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(614)

如果我的表有很多行,比如说上百亿行,那么 select rand() from table 对两行给出两个相同的结果?

pdtvr36n

pdtvr36n1#

的返回类型 rand() Hive的功能是 double . double的精度大约在-10^308到10^308之间。所以rand()返回重复结果的几率几乎为零。
在150亿行的配置单元上测试了下面的查询。

select r, count(*)
 from (
   select rand() as r from <table name>
 ) as a
  group by r 
  having count(*)>1;

结果是 No Rows Found . 这表明 rand() 未返回重复行。
从配置单元wiki中检查有关浮点精度的此链接。

相关问题