HiveQL函数8—Misc 函数

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

发布了57 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CPP_MAYIBO/article/details/104065897
今日推荐