天天看點

hive之資料類型轉換

今天在使用array_contains對collect_set的結果集和xxx字段的内容進行判斷,但是判斷結果不符合預期。

排查發現xxx字段是String類型的,在進行算數運算後,結果被轉為Double類型,和collect_set的int類型不一緻,進而導緻結果與預期不符。

驗證如下:

hive之資料類型轉換
hive之資料類型轉換
hive之資料類型轉換

總結:1、Hive在需要的時候将會對numeric類型的資料進行隐式轉換

           2、Hive也包括 隐式轉換(implicit conversions)和顯式轉換(explicitly conversions)

           3、使用cast(字段 as 類型) 實作顯示轉換

           4、任何整數類型都可以隐式地轉換成一個範圍更大的類型,BOOLEAN類型不能轉換為其他任何資料類型

           5、在使用String類型進行算數運算時,一定要注意,必要時使用顯示轉換。

繼續閱讀