Hive UDF 用户自定义函数-手机号掩盖(脱敏)
需求分析
- 能够对输入数据进行非空判断、手机号位数判断
- 能够实现校验手机号格式,把满足规则的进行****处理
- 对于不符合手机号规则的数据直接返回,不处理
Maven必须配置
<dependencies><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>3.1.2</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>3.1.4</version></dependency></dependencies>
执行步骤
第一步:自定义代码编写
package cn.test.hive.udf;import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.UDF;import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** hive自定义函数UDF 实现对手机号中间4位进行****加密*/
public class EncryptPhoneNumber extends UDF {/*** 重载evaluate方法 实现函数的业务逻辑* @param phoNum 入参:未加密手机号* @return 返回:加密后的手机号字符串*/public String evaluate(String phoNum){String encryptPhoNum = null;//手机号不为空 并且为11位if (StringUtils.isNotEmpty(phoNum) && phoNum.trim().length() == 11 ) {//判断数据是否满足中国大陆手机号码规范String regex = "^(1[3-9]\\d{9}$)";Pattern p = Pattern.compile(regex);Matcher m = p.matcher(phoNum);if (m.matches()) {//进入这里都是符合手机号规则的//使用正则替换 返回加密后数据encryptPhoNum = phoNum.trim().replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2");}else{//不符合手机号规则 数据直接原封不动返回encryptPhoNum = phoNum;}}else{//不符合11位 数据直接原封不动返回encryptPhoNum = phoNum;}return encryptPhoNum;}
}
第二步:IDEA中使用集成的Maven插件进行打包
第三步:Jar包上传HS2本地服务器
第四步:将Jar添加至Hive Classpath中
第五步:注册临时函数
create temporary function 函数名 as 'UDF类全路径';
第六步:使用
Hive UDF 用户自定义函数-手机号掩盖(脱敏)相关推荐
- Hive 之 用户自定义函数 UDF UDAF UDTF
一 什么是UDF UDF是UserDefined Function 用户自定义函数的缩写.Hive中除了原生提供的一些函数之外,如果还不能满足我们当前需求,我们可以自定义函数. 除了UDF 之外,我们 ...
- sql server 2008学习11 UDF用户自定义函数
用户自定义函数 和存储过程是类似的, 是一组 有序的t-sql语句,udf被 预先优化和编译,并且可以作为一个单元来进行调用. 使用存储过程 时 可传入参数,传出参数.可以返回值,不过该值用于指示成 ...
- Hive UDF自定义函数(临时和永久的区别)
Hive中虽然自带了一些函数,例如max().avg().sum()等,但有时候这些函数可能无法满足我们的需要,这时候就可以通过自定义UDF来进行扩展. 开发流程 UDF的开发流程基本有以下步骤: 继 ...
- hive创建java函数_spark通过java的api创建hive的UDF用户自定义函数
public class UDF { public static void main(String[] args) { SparkConf conf = new SparkConf().setMast ...
- Spark UDF用户自定义函数
自定义一个函数实现查询字符串长度.首先创建测试的DataFrame: val spark = SparkSession.builder().master("local").appN ...
- Hive中的用户自定义函数UDF
Hive中的自定义函数允许用户扩展HiveQL,是一个非常强大的功能.Hive中具有多种类型的用户自定义函数.show functions命令可以列举出当前Hive会话中的所加载进来的函数,包括内置的 ...
- 【大数据开发】SparkSQL——Spark对接Hive、Row类、SparkSQL函数、UDF函数(用户自定义函数)、UDAF函数、性能调优、SparkSQL解决数据倾斜
文章目录 一.Spark对接Hive准备工作 1.1 集群文件下载 1.2 导入依赖 1.3 打开集群metastore服务 二.Spark对接Hive 2.1 查询Hive 2.2 读取MySQL中 ...
- hive 元数据 自定义_Hive中的用户自定义函数
1.1 关于自定义函数 1)Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展. 2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考 ...
- 大数据学习笔记41:Hive - 用户自定义函数
文章目录 一.用户自定义函数 二.案例演示:自定义阶乘函数 1.创建Maven项目UDFDemo 2.在pom.xml里添加对hadoop和hive的依赖 3.继承UDF类,创建Factorial类 ...
最新文章
- WinForm的RadioButton使用小技巧
- MFC Combo-box显示大小
- python多线程 不在main_Python多线程
- bcb 如何在DLL中捕捉系统级异常
- 局部钩子能防全局钩子吗_Django局部钩子和全局钩子
- 【转载】 quartus中调用modelsim仿真的方法
- 灾难 BZOJ 2815
- HDFS Federation在美团点评的应用与改进
- Intel 64/x86_64/IA-32/x86处理器通用寄存器 (2) - 64位通用寄存器
- Nacos 新增命名空间
- 在php中使用守护进程
- 微信公众号发红包开发教程
- 【Lorenz混沌】基于FPGA的Lorenz混沌系统verilog实现
- python求三个整数最大值_Python 输入三个整数,输出最大值
- 背单词APP调研分析
- 【附源码】Java计算机毕业设计架构的博客平台设计(程序+LW+部署)
- LayUI treetable树形表格的实现, 数据格式正确,不显示的解决方案 和在这个过程中遇到的坑~ 认真看 你会得到一些想要的答案。
- 计算方法(二)直接三角分解法解线性方程组
- 获取Android签名打包keystore或者.jks文件的MD5
- 2020年6月程序员工资统计,平均14404元,又跌了,扎心了!你的呢?
热门文章
- 夏天电动汽车起火事故频繁,在于它实在太怕热了
- 13. Java网络编程
- 互联网公司如何有效执行软件发布流程
- 印度初创公司推出 AI「视频墙」 ​监视 70 所监狱【智能快讯】
- Echarts图--关于写在vue页面上的
- 夜神模拟器安装fiddler证书显示“游戏安装包可能异常”
- 【DB2】How to resolve SQL20249N the statement was not processed with error
- 三百内哪款蓝牙耳机较好?好用的高性价比蓝牙耳机推荐
- 什么是排队叫号系统。
- C语言基础_Day03