conv()函数,是用来进行进制转换的
hive官方wiki解释:Converts a number from a given base to another
语法:conv(num,from_base,to_base)
解释:num可以是int型也可以是string类型,from_base表示原来的进制,to_base表示要转成的进制,返回的结果是string类型。如果num有NULL,那么conv的结果也是NULL。
用命令desc function conv查看
spark-sql> desc function conv;
Function: conv
Class: org.apache.spark.sql.catalyst.expressions.Conv
Usage: conv(num, from_base, to_base) - Convert `num` from `from_base` to `to_base`.
如果想查看更详细信息,可以用desc function extended conv命令
spark-sql> desc function extended conv;
Function: conv
Class: org.apache.spark.sql.catalyst.expressions.Conv
Usage: conv(num, from_base, to_base) - Convert `num` from `from_base` to `to_base`.
Extended Usage:
Examples:
> SELECT conv('100', 2, 10);
4
> SELECT conv(-10, 16, -10);
-16
举个例子:
spark-sql> select conv(21,10,2);
10101
Time taken: 0.485 seconds, Fetched 1 row(s)
spark-sql> select conv('7f2a4',16,10);
520868
Time taken: 11.038 seconds, Fetched 1 row(s)