HiveQL函数8—Misc 函数
作者:互联网
目录
- 1.java_method(class, method[, arg1[, arg2..]]) , reflect(class, method[, arg1[, arg2..]])
- 2.hash(a1[, a2...])
- 3.current_user()
- 4.logged_in_user()
- 5.current_database()
- 6.md5(string/binary)
- 7.sha1(string/binary)、sha(string/binary)
- 8.crc32(string/binary)
- 9.sha2(string/binary, int)
- 10.aes_encrypt(input string/binary, key string/binary)
- 11.aes_decrypt(input binary, key string/binary)
- 12.version()
- 13.surrogate_key([write_id_bits, task_id_bits])
- 参考
1.java_method(class, method[, arg1[, arg2…]]) , reflect(class, method[, arg1[, arg2…]])
返回值:varies
功能:使用反射机制调用java的方法。这2个方法是完全等价的。
示例:
> SELECT reflect("java.lang.Math", "max", 1,9) as f1 from test limit 1;
+-----+
| f1 |
+-----+
| 9 |
+-----+
> SELECT java_method("java.lang.Math", "max", 1,9) as f1 from test limit 1;
+-----+
| f1 |
+-----+
| 9 |
+-----+
参考:https://cwiki.apache.org/confluence/display/Hive/ReflectUDF
补充:
如果使用该方法时提示如下错误信息
SemanticException: UDF reflect is not allowed (state=08S01,code=1)
则需要修改hive的配置项,并重启HS2,注意这些参数无法通过set命令来生效。
<property>
<name>hive.server2.builtin.udf.blacklist</name>
<value>empty_blacklist</value>
</property>
<property>
<name>hive.server2.builtin.udf.whitelist</name>
<value></value>
</property>
参考: https://community.cloudera.com/t5/Support-Questions/UDF-reflect-is-not-allowed-beeline/m-p/155072
2.hash(a1[, a2…])
返回值:int
功能:返回参数的hash值
示例:
> select hash(10,23) as f1 ;
+------+
| f1 |
+------+
| 333 |
+------+
3.current_user()
返回值:string
功能:从配置的认证管理器返回当前的用户名(从Hive1.2.0开始)。可能与连接时提供的用户相同,但对于某些认证管理器(例如HadoopDefaultAuthenticator),可能会有所不同。
示例:
> select current_user() as f1;
+---------+
| f1 |
+---------+
| hadoop |
+---------+
4.logged_in_user()
返回值:string
功能:从会话状态返回当前用户名(从Hive2.2.0开始)。这是连接Hive时提供的用户名。
示例:
> select logged_in_user() as f1;
+---------+
| f1 |
+---------+
| hadoop |
+---------+
5.current_database()
返回值:string
功能:返回当前的数据库名称
示例:
> select current_database() as f1;
+--------+
| f1 |
+--------+
| test2 |
+--------+
6.md5(string/binary)
返回值:string
功能:计算字符串或二进制的MD5 128位校验和(从Hive1.3.0开始)。该值以32个十六进制数字的字符串形式返回,如果参数为空,则返回空值。
示例:
> select md5('abc') as f1;
+-----------------------------------+
| f1 |
+-----------------------------------+
| 900150983cd24fb0d6963f7d28e17f72 |
+-----------------------------------+
7.sha1(string/binary)、sha(string/binary)
返回值:string
功能:计算字符串或二进制的sha-1 digest,并将该值以十六进制字符串返回(从Hive1.3.0开始)。
示例:
> select sha1('abc') as f1;
+-------------------------------------------+
| f1 |
+-------------------------------------------+
| a9993e364706816aba3e25717850c26c9cd0d89d |
+-------------------------------------------+
8.crc32(string/binary)
返回值:bigint
功能:计算字符串或二进制的CRC,返回bigint值(从Hive1.3.0开始)。
示例:
> select crc32('abc') as f1;
+------------+
| f1 |
+------------+
| 891568578 |
+------------+
9.sha2(string/binary, int)
返回值:string
功能:计算SHA-2系列哈希函数(SHA-224, SHA-256, SHA-384, and SHA-512)(从Hive1.3.0开始)。第一个参数是要hash的字符串或二进制。第二个参数表示结果所需的位长度,其值必须为224、256、384、512或0(相当于256)。从Java 8开始支持SHA-224。如果参数为空或哈希长度不是允许的值之一,则返回值为NULL
示例:
> select sha2('abc',512) as f1;
+----------------------------------------------------+
| f1 |
+----------------------------------------------------+
| ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f |
+----------------------------------------------------+
> select sha2('abc',2) as f1;
+-------+
| f1 |
+-------+
| NULL |
+-------+
10.aes_encrypt(input string/binary, key string/binary)
返回值:binary
功能:使用AES对input进行加密(从Hive1.3.0开始)。key的长度可以是 128, 192, 256位,只有 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files已按照才能使用192, 256的key。如果参数为空或key长度不是允许的值之一,则返回值为NULL
示例:
> select base64(aes_encrypt('ABC', '1234567890123456')) as f1;
+---------------------------+
| f1 |
+---------------------------+
| y6Ss+zCYObpCbgfWfyNWTw== |
+---------------------------+
11.aes_decrypt(input binary, key string/binary)
返回值:binary
功能:使用AES对input进行解密(从Hive1.3.0开始)。key的长度可以是 128, 192, 256位,只有 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files已按照才能使用192, 256的key。如果参数为空或key长度不是允许的值之一,则返回值为NULL
示例:
> select aes_decrypt(unbase64('y6Ss+zCYObpCbgfWfyNWTw=='), '1234567890123456') as f1;
+------+
| f1 |
+------+
| ABC |
+------+
12.version()
返回值:string
功能:返回hive的版本信息(从Hive2.1.0开始)
示例:
> select version() as f1;
+----------------------------+
| f1 |
+----------------------------+
| 3.1.0.3.1.0.17-1 rUnknown |
+----------------------------+
13.surrogate_key([write_id_bits, task_id_bits])
返回值:bigint
功能:在向表中插入数据时自动生成行的数字id。只能用作ACID或 insert-only表的默认值。
参考
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Misc.Functions
看得出的就是 发布了52 篇原创文章 · 获赞 3 · 访问量 1万+ 私信 关注标签:binary,函数,f1,HiveQL,Misc,示例,key,返回值,string 来源: https://blog.csdn.net/CPP_MAYIBO/article/details/104065897