Hive中避免科學計數法表示浮點數和長整數

2021-08-15 12:15:58 字數 1304 閱讀 5688

在hive中進行計算的時候經常會遇到資料結果以科學計數的方式顯示出來,這並不是原本想要的結果。可以考慮用【cast(列名 as bigint/decimal(m,n))】的方式避免科學計數法結果的出現。

1、浮點數非科學計數法展示

hive> select pay_uid_rate_90,cast(pay_uid_rate_90 as decimal(32,30)),pay_amount_peruid_90 from ***xx_liuyl_sum2;

ok6.658661773714796e-5 0.000066586617737147960000000000 20.148019457956913

time taken: 0.066 seconds, fetched: 1 row(s)

不轉也可以,不是乙個很好的佐證:

hive> select 8.84393493990968,cast(8.84393493990968 as decimal(19,18));

ok8.84393493990968 8.84393493990968

time taken: 0.049 seconds, fetched: 1 row(s)

2、長整數非科學計數法展示

hive> select 88439349399000096898,cast(88439349399000096898 as bigint);

ok8.84393493990001e19 9223372036854775807

time taken: 0.202 seconds, fetched: 1 row(s)

3、幾個整型資料型別的位元組及其範圍

bigint

8byte |-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

int4byte|-2,147,483,648 ~ 2,147,483,647 

smallint

2byte|-32,768 ~ 32,767

tinyint

1byte|-128 ~ 127

HIVE科學計數法

hive中數值型別可以和和字串型別string運算,其中字串為純數字型別,都轉為了浮點型別double.若字串不為純數字型別,計算結果則為null.1 數值和數值 int 2 數值和數值型字元 3 數值和非純數字 union all中的子查詢要求相同的列數,對應字段型別相同或可以隱式轉化為同一種型別...

hive轉換科學計數法

hive中的科學計數法如何轉換回數字,搜了半天終於找到了一篇好文章,這裡記錄轉換 為自己日後參考。自 case 處理非科學計數法表示的字串 when length regexp extract 字串 0 9 0 9 e 0 9 2 0 then 字串 處理整數 when length regexp ...

hive 如何處理科學計數法

說明 hive中int float double這些數值型別在儲存大額度數字時,在前端展現上總是使用科學計數法來表示,這樣搞的挺煩。舉例說明 樣例資料 select lte drop rate from t table limit 10 輸出結果 5.0e 4 7.1e 4 5.41e 4 處理方案...