db2增加decimal类型字段小数位_05725.16.1Hive中decimal类型字段.0结尾数据显示异常问题处理...
作者:輝少
1
問題描述
Fayson今天在Hive中插入字段類型為decimal的數據時發現,插入數據為1.0, 1.000等以 .0結尾的數據在hive中顯示為1,即不顯示末尾的.0 ,如下:
CREATE?TABLE?decimaltest?(d?decimal(18,7));INSERT?INTO?decimaltest?values?(1.000000);
INSERT?INTO?decimaltest?values?(1.000001);
INSERT?INTO?decimaltest?values?(2.000);
INSERT?INTO?decimaltest?values?(2.00001);
執行查詢語句,結果如下圖所示
SELECT?*?FROM?decimaltest;2
問題分析
上圖中我們可以看到以.0結尾的數據在Hive 中都不會顯示末尾的.0,而以非.0 結尾的數據則沒有該問題。
在apache官網中找到已知的問題記錄HIVE-12063,該問題影響版本包括0.14.0、1.0.0、1.2.0、1.1.0、0.13…
而Fayson所用的CDH版本為5.16.1,Hive 版本為1.1.0,在受影響的版本范圍內,Hive版本查看如下:
3
問題解決
關于在CDH的中Hive的版本,C5的Hive版本為1.1.0,而在CDH 6.1.X 的Hive 版本為2.1.1。并且在Cloudera 的官網C6版本的發行說明中也是有提到關于該問題的處理。于是Fayson便在CDH 6.1.0的版本來驗證該問題是否已經解決。
創建測試表并插入數據
CREATE?TABLE?decimaltest?(d?decimal(18,7));INSERT?INTO?decimaltest?values?(1.000000);
INSERT?INTO?decimaltest?values?(1.000001);
INSERT?INTO?decimaltest?values?(2.000);
INSERT?INTO?decimaltest?values?(2.00001);
執行查詢語句,結果如下圖所示,發現在Hive2.1.1中不僅修復了末尾的.0 問題,并且根據設置的小數點位數進行自動補零。
SELECT?*?FROM?decimaltest;參考:
1、Apache HIVE-12063問題記錄地址:
https://issues.apache.org/jira/browse/HIVE-12063
總結
以上是生活随笔為你收集整理的db2增加decimal类型字段小数位_05725.16.1Hive中decimal类型字段.0结尾数据显示异常问题处理...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 检测oracle的语句,oracle功能
- 下一篇: python制作界面怎么触发事件_pyt