当我在Hue中针对Impala数据源运行时,我得到了意外的结果
select id, rand(unix_timestamp(now())) as ord
from (
select 1 as id union select 2 union select 3 union select 4
) x
order by ord
我希望通过ord列中出现的任何内容以随机顺序获取行。取而代之的是,我总是得到3,4和1,2,其数字在ord中不是按顺序排列的:
id ord
3 0.8899110606358904
4 0.3766916056055071
1 0.09029531483086539
2 0.7446466436351866
那么,Impala不了解ORDER BY的哪一部分?或者我错过了什么?
答案 0 :(得分:0)
似乎是Impala 2.8 and lower has this bug。据称这是在Impala 2.9中修复的,但我还没有测试过。
与此同时,由于我不需要非常强大的随机性,我只是使用了:
order by mod((((unix_timestamp() + MY_ID_COLUMN) * 7621) + 1), 32768)
(这种结果有一定的模式,但它可能足以愚弄一个不经意的观察者。)
感谢Vamsi Prabhala指出我正确的方向。