如果我的表有很多行,比如说上百亿行,那么 select rand() from table 对两行给出两个相同的结果?
select rand() from table
pdtvr36n1#
的返回类型 rand() Hive的功能是 double . double的精度大约在-10^308到10^308之间。所以rand()返回重复结果的几率几乎为零。在150亿行的配置单元上测试了下面的查询。
rand()
double
select r, count(*) from ( select rand() as r from <table name> ) as a group by r having count(*)>1;
结果是 No Rows Found . 这表明 rand() 未返回重复行。从配置单元wiki中检查有关浮点精度的此链接。
No Rows Found
1条答案
按热度按时间pdtvr36n1#
的返回类型
rand()
Hive的功能是double
. double的精度大约在-10^308到10^308之间。所以rand()返回重复结果的几率几乎为零。在150亿行的配置单元上测试了下面的查询。
结果是
No Rows Found
. 这表明rand()
未返回重复行。从配置单元wiki中检查有关浮点精度的此链接。