背景
hive版本1.2.1
問題
where過濾條件中很多條件,其中包含了數值比較情況,當時開發人員沒注意寫的是a=0.01進行比較,a爲數值型,造成過濾條件不生效的情況。單獨是用a=0.01可以,但是在複雜條件下會出現問題。
在impala中執行同樣的sql卻不會有問題,說明hive本身對數值比較的處理方式跟impala不同。
解決
數值型字段比較最好還是避免等值比較,還是採用相加相減在一定精度內保險。
hive版本1.2.1
where過濾條件中很多條件,其中包含了數值比較情況,當時開發人員沒注意寫的是a=0.01進行比較,a爲數值型,造成過濾條件不生效的情況。單獨是用a=0.01可以,但是在複雜條件下會出現問題。
在impala中執行同樣的sql卻不會有問題,說明hive本身對數值比較的處理方式跟impala不同。
數值型字段比較最好還是避免等值比較,還是採用相加相減在一定精度內保險。
可怕,hive版本1.2.1,實踐中發現,to_unix_timestamp比unix_timestamp函數快幾十甚至上百倍!!!