1.4.8、掩码函数
1.4.8.1、mask-->Hive2.1.0
1.4.8.12、mask_first_n->Hive2.1.0
1.4.8.13、mask_last_n -->Hive2.1.0
1.4.8.14、mask_show_first_n-->Hive2.1.0
1.4.8.15、mask_show_last_n -->Hive2.1.0
1.4.8.16、mask_hash -->Hive2.1.0
支持版本 | 返回值类型 | 函数名称 | 功能描述 |
Hive2.1.0 | string | mask(string str[, string upper[, string lower[, string number]]]) | 返回 str 的掩码版本(从 Hive 2.1.0 开始)。默认情况下,大写字母转换为“X”,小写字母转换为“x”,数字转换为“n”。例如 mask("abcd-EFGH-8765-4321") 结果为 xxxx-XXXX-nnnn-nnnn。您可以通过提供附加参数来覆盖掩码中使用的字符:第二个参数控制大写字母的掩码字符,第三个参数控制小写字母,第四个参数控制数字。例如, mask("abcd-EFGH-8765-4321", "U", "l", "#") 结果为 llll-UUUU-####-#### |
Hive2.1.0 | string | mask_first_n(string str[, int n]) | 返回前 n 个值被屏蔽的 str 的屏蔽版本(从 Hive 2.1.0 开始)。大写字母转换为“X”,小写字母转换为“x”,数字转换为“n”。例如, mask_first_n("1234-5678-8765-4321", 4) 结果为 nnnn-5678-8765-4321 |
Hive2.1.0 | string | mask_last_n(string str[, int n]) | 返回一个掩码版本的 str 掩码了最后 n 个值(从 Hive 2.1.0 开始)。大写字母转换为“X”,小写字母转换为“x”,数字转换为“n”。例如: mask_last_n("1234-5678-8765-4321", 4) 结果为 1234-5678-8765-nnnn |
Hive2.1.0 | string | mask_show_first_n(string str[, int n]) | 返回 str 的掩码版本,显示未掩码的前 n 个字符(从 Hive 2.1.0 开始)。大写字母转换为“X”,小写字母转换为“x”,数字转换为“n”。例如:mask_show_first_n("1234-5678-8765-4321", 4) 结果为 1234-nnnn-nnnn-nnnn |
Hive2.1.0 | string | mask_show_last_n(string str[, int n]) | 返回 str 的掩码版本,显示未掩码的最后 n 个字符(从 Hive 2.1.0 开始)。大写字母转换为“X”,小写字母转换为“x”,数字转换为“n”。例如, mask_show_last_n("1234-5678-8765-4321", 4) 结果为 nnnn-nnnn-nnnn-4321 |
Hive2.1.0 | string | mask_hash(string|char|varchar str) | 返回基于 str 的散列值(从 Hive 2.1.0)。散列是一致的,可用于跨表将掩码值连接在一起。对于非字符串类型,此函数返回 null。 |
1.4.9、杂项函数
1.4.9.1、java_method-->Hive0.9.0
SELECT java_method("java.lang.String", "valueOf", 1),
java_method("java.lang.String", "isEmpty"),
java_method("java.lang.Math", "max", 2, 3),
java_method("java.lang.Math", "min", 2, 3),
java_method("java.lang.Math", "round", 2.5),
java_method("java.lang.Math", "exp", 1.0),
java_method("java.lang.Math", "floor", 1.9)
1.4.9.2、reflect --> Hive0.7.0
SELECT reflect("java.lang.String", "valueOf", 1),
reflect("java.lang.String", "isEmpty"),
reflect("java.lang.Math", "max", 2, 3),
reflect("java.lang.Math", "min", 2, 3),
reflect("java.lang.Math", "round", 2.5),
reflect("java.lang.Math", "exp", 1.0),
reflect("java.lang.Math", "floor", 1.9)
1.4.9.3、hash --> Hive0.4
select hash('asfsd');
1.4.9.4、current_user --> Hive1.2.0
select current_user();
1.4.9.5、logged_in_user --> Hive2.2.0
1.4.9.6、current_database -->Hive0.13.0
select current_database();
1.4.9.7、md5 -->Hive1.3.0
select md5('234');
1.4.9.8、sha1 --> Hive1.3.0
1.4.9.9、crc32 --> Hive1.3.0
1.4.9.10、sha2-->Hive1.3.0
1.4.9.11、aes_encrypt --> Hive1.3.0
1.4.9.12、version --> Hive2.1.0
1.4.9.13、surrogate_key
支持版本 | 返回值类型 | 函数名称 | 功能描述 |
Hive0.9.0 | varies | java_method(class, method[, arg1[, arg2..]]) | 反射 |
Hive0.7.0 | varies | reflect(class, method[, arg1[, arg2..]]) | 使用反射通过匹配参数签名来调用 Java 方法。 |
Hive0.4 | int | hash(a1[, a2...]) | 返回参数的哈希值。 (从 Hive 0.4 开始) |
Hive1.2.0 | string | current_user() | 从配置的身份验证器管理器返回当前用户名(从 Hive 1.2.0)。可能与连接时提供的用户相同,但对于某些身份验证管理器(例如 HadoopDefaultAuthenticator),它可能不同。 |
Hive2.2.0 | string | logged_in_user() | 从会话状态返回当前用户名(从 Hive 2.2.0)。这是连接到 Hive 时提供的用户名。 |
Hive0.13.0 | string | current_database() | 返回当前数据库名称(从 Hive 0.13.0 开始) |
Hive1.3.0 | string | md5(string/binary) | 计算字符串或二进制的 MD5 128 位校验和(从 Hive 1.3.0 开始)。该值作为 32 个十六进制数字的字符串返回,如果参数为 NULL,则返回 NULL。示例:md5('ABC') = '902fbdd2b1df0c4f70b4a5d23525e932' |
Hive1.3.0 | string | sha1(string/binary) sha(string/binary) | 计算字符串或二进制的 SHA-1 摘要并将值作为十六进制字符串返回(从 Hive 1.3.0)。示例:sha1('ABC') = '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8' |
Hive1.3.0 | bigint | crc32(string/binary) | 计算字符串或二进制参数的循环冗余校验值并返回 bigint 值(从 Hive 1.3.0)。示例:crc32('ABC') = 2743272264。 |
Hive1.3.0 | string | sha2(string/binary, int) | 计算 SHA-2 系列哈希函数(SHA-224、SHA-256、SHA-384 和 SHA-512)(从 Hive 1.3.0 开始))。第一个参数是要散列的字符串或二进制文件。第二个参数表示结果的所需位长,其值必须为 224、256、384、512 或 0(相当于 256)。从 Java 8 开始支持 SHA-224。如果任一参数为 NULL 或哈希长度不是允许的值之一,则返回值为 NULL。示例:sha2('ABC', 256) = 'b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78' |
Hive1.3.0 | binary | aes_encrypt(input string/binary, key string/binary) | 使用 AES 加密输入(从 Hive 1.3.0 开始)。可以使用 128、192 或 256 位的密钥长度。如果安装了 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,则可以使用 192 和 256 位密钥。如果任一参数为 NULL 或密钥长度不是允许的值之一,则返回值为 NULL。示例:base64(aes_encrypt('ABC', '1234567890123456')) = 'y6Ss+zCYObpCbgfWfyNWTw=='。 |
Hive1.3.0 | binary | aes_decrypt(input binary, key string/binary) | 使用 AES 解密输入(从 Hive 1.3.0 开始)。可以使用 128、192 或 256 位的密钥长度。如果安装了 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,则可以使用 192 和 256 位密钥。如果任一参数为 NULL 或密钥长度不是允许的值之一,则返回值为 NULL。示例:aes_decrypt(unbase64('y6Ss+zCYObpCbgfWfyNWTw=='), '1234567890123456') = 'ABC'。 |
Hive2.1.0 | string | version() | 返回 Hive 版本(从 Hive 2.1.0 开始)。该字符串包含 2 个字段,第一个是内部版本号,第二个是内部版本哈希。示例:select version()可能会返回“2.1.0.2.5.0.0-1245 r027527b9c5ce1a3d7d0b6d2e6de2378fb0c39232”。实际结果将取决于您的构建 |
bigint | surrogate_key([write_id_bits, task_id_bits]) | 当您将数据输入表格时,自动为行生成数字 ID。只能用作酸表或仅插入表的默认值。 |