Hadoop 如何在配置单元HQL中将十六进制值转换为十进制

Hadoop 如何在配置单元HQL中将十六进制值转换为十进制,hadoop,hive,hiveql,hadoop2,Hadoop,Hive,Hiveql,Hadoop2,我有Hive1.1,我在将十六进制值转换成十进制或BIGINT时遇到了问题 使用UNHEX('2BD1BCAE0501250E')应返回=3157512269357720846 但是相反,我得到了类似WingDings=+Ѽ的东西�% 我试过解码,编码,BASE64…但似乎没有任何效果。还有人试过这样做吗?谢谢Conv(字符串num,int from_base,int to_base)将一个数字从给定的基数转换为另一个基数 conv('2BD1BCAE0501250E', 16, 10)

我有Hive1.1,我在将十六进制值转换成十进制或BIGINT时遇到了问题

使用UNHEX('2BD1BCAE0501250E')应返回=3157512269357720846

但是相反,我得到了类似WingDings=+Ѽ的东西�%

我试过解码,编码,BASE64…但似乎没有任何效果。还有人试过这样做吗?谢谢

Conv(字符串num,int from_base,int to_base)将一个数字从给定的基数转换为另一个基数

   conv('2BD1BCAE0501250E', 16, 10)

哦,哇!谢谢你,桑德普。这似乎很有魅力。我花了太多的时间来构思一份工作,这是短暂而甜蜜的。再次感谢!这不适用于十六进制数的大字符串。例如,对于
conv(“0158419C71260101874B47D303536B7A”,16,10)
conv(“0158419B2F010101F343F8A83141C6F4”,16,10)
都返回18446744073709551615。大整数有限制…可以返回/存储不超过…即BIGINT(8字节有符号整数,从-9223372036854775808到9223372036854775807)