hive 提供了一些数据掩码函数,这里整理出来为需要设计掩码功能的开发者作为参考。
语法如下:
mask(string str[, string upper[, string lower[, string number]]])
缺省为大写转为X,小写转为x,数值转为n。返回掩码版本字符串(自 Hive 2.1.0起)。
举例:mask("abcd-EFGH-8765-4321") => in xxxx-XXXX-nnnn-nnnn
我们可以覆盖默认功能,第二个参数用于替换大写字母,第三个替换小写字母,第四个替换数值字符。
举例:mask("abcd-EFGH-8765-4321", "U", "l", "#") => llll-UUUU-####-####
语法如下:
mask_first_n(string str[, int n])
返回掩码前n个值的字符串 (自 Hive 2.1.0起).缺省为大写转为X,小写转为x,数值转为n。
举例:
mask_first_n("1234-5678-8765-4321", 4) => nnnn-5678-8765-4321
.
语法如下:
mask_last_n(string str[, int n])
返回掩码后n个值的字符串 (自 Hive 2.1.0起).缺省为大写转为X,小写转为x,数值转为n。
举例:mask_last_n("1234-5678-8765-4321", 4) => 1234-5678-8765-nnnn
.
语法如下:
mask_show_first_n(string str[, int n])
返回前n个值未掩码的字符串 (自 Hive 2.1.0起).缺省为大写转为X,小写转为x,数值转为n。
举例:mask_show_first_n("1234-5678-8765-4321", 4) => 1234-nnnn-nnnn-nnnn
.
语法如下:
mask_show_last_n(string str[, int n])
返回后n个值未掩码的字符串 (自 Hive 2.1.0起).缺省为大写转为X,小写转为x,数值转为n。
举例:mask_show_last_n("1234-5678-8765-4321", 4) => nnnn-nnnn-nnnn-4321
.
语法如下:
mask_hash(string|char|varchar str)
基于字符串返回哈希值(自 Hive 2.1.0起),该散列函数是一致的,可用于跨表连接掩码值。对于非字符串类型,该函数返回null。