需求分析

  • 能够对输入数据进行非空判断、手机号位数判断
  • 能够实现校验手机号格式,把满足规则的进行****处理
  • 对于不符合手机号规则的数据直接返回,不处理

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 用户自定义函数-手机号掩盖(脱敏)相关推荐

  1. Hive 之 用户自定义函数 UDF UDAF UDTF

    一 什么是UDF UDF是UserDefined Function 用户自定义函数的缩写.Hive中除了原生提供的一些函数之外,如果还不能满足我们当前需求,我们可以自定义函数. 除了UDF 之外,我们 ...

  2. sql server 2008学习11 UDF用户自定义函数

    用户自定义函数  和存储过程是类似的, 是一组 有序的t-sql语句,udf被 预先优化和编译,并且可以作为一个单元来进行调用. 使用存储过程 时 可传入参数,传出参数.可以返回值,不过该值用于指示成 ...

  3. Hive UDF自定义函数(临时和永久的区别)

    Hive中虽然自带了一些函数,例如max().avg().sum()等,但有时候这些函数可能无法满足我们的需要,这时候就可以通过自定义UDF来进行扩展. 开发流程 UDF的开发流程基本有以下步骤: 继 ...

  4. hive创建java函数_spark通过java的api创建hive的UDF用户自定义函数

    public class UDF { public static void main(String[] args) { SparkConf conf = new SparkConf().setMast ...

  5. Spark UDF用户自定义函数

    自定义一个函数实现查询字符串长度.首先创建测试的DataFrame: val spark = SparkSession.builder().master("local").appN ...

  6. Hive中的用户自定义函数UDF

    Hive中的自定义函数允许用户扩展HiveQL,是一个非常强大的功能.Hive中具有多种类型的用户自定义函数.show functions命令可以列举出当前Hive会话中的所加载进来的函数,包括内置的 ...

  7. 【大数据开发】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中 ...

  8. hive 元数据 自定义_Hive中的用户自定义函数

    1.1 关于自定义函数 1)Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展. 2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考 ...

  9. 大数据学习笔记41:Hive - 用户自定义函数

    文章目录 一.用户自定义函数 二.案例演示:自定义阶乘函数 1.创建Maven项目UDFDemo 2.在pom.xml里添加对hadoop和hive的依赖 3.继承UDF类,创建Factorial类 ...

最新文章

  1. WinForm的RadioButton使用小技巧
  2. MFC Combo-box显示大小
  3. python多线程 不在main_Python多线程
  4. bcb 如何在DLL中捕捉系统级异常
  5. 局部钩子能防全局钩子吗_Django局部钩子和全局钩子
  6. 【转载】 quartus中调用modelsim仿真的方法
  7. 灾难 BZOJ 2815
  8. HDFS Federation在美团点评的应用与改进
  9. Intel 64/x86_64/IA-32/x86处理器通用寄存器 (2) - 64位通用寄存器
  10. Nacos 新增命名空间
  11. 在php中使用守护进程
  12. 微信公众号发红包开发教程
  13. 【Lorenz混沌】基于FPGA的Lorenz混沌系统verilog实现
  14. python求三个整数最大值_Python 输入三个整数,输出最大值
  15. 背单词APP调研分析
  16. 【附源码】Java计算机毕业设计架构的博客平台设计(程序+LW+部署)
  17. LayUI treetable树形表格的实现, 数据格式正确,不显示的解决方案 和在这个过程中遇到的坑~ 认真看 你会得到一些想要的答案。
  18. 计算方法(二)直接三角分解法解线性方程组
  19. 获取Android签名打包keystore或者.jks文件的MD5
  20. 2020年6月程序员工资统计,平均14404元,又跌了,扎心了!你的呢?

热门文章

  1. 夏天电动汽车起火事故频繁,在于它实在太怕热了
  2. 13. Java网络编程
  3. 互联网公司如何有效执行软件发布流程
  4. 印度初创公司推出 AI「视频墙」 ​监视 70 所监狱【智能快讯】
  5. Echarts图--关于写在vue页面上的
  6. 夜神模拟器安装fiddler证书显示“游戏安装包可能异常”
  7. 【DB2】How to resolve SQL20249N the statement was not processed with error
  8. 三百内哪款蓝牙耳机较好?好用的高性价比蓝牙耳机推荐
  9. 什么是排队叫号系统。
  10. C语言基础_Day03