2017-05-26 115 views
0

我試圖在運行此查詢我得到未能運行HIVE SQL類似下面的代碼「NumberFormatException的對於輸入字符串」 HIVE

insert into table FactUpdated 
    select colm_name 
    from 
    (
    select colmn_name, floor(rand()*116219) rand_key 
    from FactTable limit 2942699191) line 
    join DimTable 
    on FactTable.rand_key = DimTable.id; 

:NumberFormatException的對於輸入字符串:「2942699191」

我看起來像蜂巢中的限制條款在價值方面有一些限制。

有人可以幫助我解決這個問題。

PS:蜂房版1.2.1.2.4

回答

1

limit應該是一個整數。

2^31 - 1工作

select 1 
limit 2147483647 
; 

2^31超出範圍,並返回相同的錯誤你

select 1 
limit 2147483648 
; 

LimitOperator.java

public class LimitOperator extends Operator<LimitDesc> implements Serializable { private static final long serialVersionUID = 1L; 

    protected transient int limit;  ... 
+0

是的,工作正常,有沒有辦法改變限制的數據類型或使用任何重載的類? –

+0

限制在源代碼中定義爲「int」(請參閱​​更新的答案)。無論如何,你的要求似乎沒有多大意義。你在這裏的動機是什麼? –

+0

我需要有一個10B記錄表,並且我必須從腳本生成7B記錄,其餘需要從同一個表中複製回來,在這種情況下,我需要複製2.94B。這是我想要達到的目標。 –

相關問題