需求:hive表email_status_result中有个邮箱(receiver )字段,查询结果需要脱敏展示,表结构如下

CREATE TABLE email_status_result(
receiver STRING,
email_status STRING,
status_count INT
)COMMENT 'email_status aggregation data'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

未脱敏情况下查询 select receiver from email_status_result limit 10 

解决方案:

UDF分为三种,分别如下
1、UDF(User-Defined-Function),一进一出(输入一行,输出一行),比如:lowser()等。

2、UDAF(User-Defined Aggregation Funcation),多进一出(输入多行,输出一行),比如:avg()等。

3、UDTF(User-Defined Table-Generating Functions),一进多出(输入一行,输出多行),比如:collect_set()

该脱敏需求符合输入一行,输出一行,因此我们采取UDF实现

1、代码实现

public class EncrptEmailUdf extends UDF {private   String getEncrpEmail(String email) {String user = email.split("@")[0];String newEmail = "";if (user.length() > 1) {newEmail = String.format("%s%s%s", user.substring(0, 1),DigestUtils.md5Hex(email),user.substring(user.length() - 1));} return newEmail;
}public String evaluate(String email) {return getEncrpEmail(email);}}

2、通过eclipse等工具导出encrptEmail.jar并上传encrptEmail.jar到客户端服务器/opt/目录下

3、进入hive客户端执行

 hive> add jar /opt/encrptEmail.jar

4、创建临时函数

hive> create temporary function encrptEmail as 'com.sohu.sc.tool.EncrptEmailUdf';

5、脱敏查询

hive>select encrptEmail(receiver) from email_status_result limit 10

hive编写自定义UDF函数相关推荐

  1. 5、Hive的自定义UDF函数

    2019独角兽企业重金招聘Python工程师标准>>> 1.pom.xml引入依赖及打包 <dependencies><dependency><grou ...

  2. HIVE自定义UDF函数-经纬度转换成省市地址

    目录 1.需求背景 2.解决方案 3.代码pom引用 4.代码集成UDF 5.编译jar包 6.使用说明 7.将jar包放到hdfs 8.创建持久化function 9.测试 10.结语 1.需求背景 ...

  3. java调mongodb自定义函数,自定义UDF函数,从hive保存到mongodb

    (可以通过idea工具调试UDF函数,第二步中会提供参考) 一.自定义UDF函数: 1.首先是pom.xml文件 xmlns:xsi="http://www.w3.org/2001/XMLS ...

  4. Hadoop生态圈-hive编写自定义函数

    Hadoop生态圈-hive编写自定义函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  5. Hive _函数(系统内置函数、自定义函数、自定义UDF函数)

    函数 系统内置函数 1.查看系统自带的函数 show functuions; 2.显示自带的函数的用法 desc function month; 3.详细显示自带的函数的用法 desc functio ...

  6. hive 转拼音udf_自定义UDF函数:将汉字转换成拼音

    工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...

  7. 8.Hive基础—函数—系统内置函数、常用内置函数、自定义函数、自定义UDF函数、自定义UDTF函数

    本文目录如下: 第8章 函数 8.1 系统内置函数 8.2 常用内置函数 8.2.1 空字段赋值 8.2.2 CASE WHEN THEN ELSE END 8.2.3 行转列 8.2.4 列转行 8 ...

  8. 自定义UDF函数和UDTF函数

    文章目录 1.创建maven项目,引入依赖 2.自定义函数 自定义UDF函数 自定义UDTF函数 hive调用jar包创造函数 方法1:上传到linux下导入hive 方法2:上传到hdfs上再导入h ...

  9. 自定义UDF函数:将汉字转换成拼音

    工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...

最新文章

  1. 《编译与反编译技术实战 》一2.3 编译器的设计与实现概述
  2. Android 核心分析之十二Android GEWS窗口管理之基本架构原理
  3. spark 写本地文件_(纯干货建议收藏)一次GC引发的Spark调优大全
  4. scikit-learn学习之神经网络算法
  5. 学fpga(流水灯)
  6. HDU 5908 Abelian Period 可以直接用multiset
  7. VC通过函数名调用DLL的标准范例
  8. HDU 1813 Escape from Tetris (IDA*)
  9. 教你如何认识各种光纤接口类型
  10. 腾讯云服务器linux系统有图形界面,腾讯云服务器如何搭建Ubuntu可视化界面?
  11. WinRAR4.11激活
  12. 2109-全国大学生电子设计竞赛-F-纸张数识别(内含arduino代码以及题解)
  13. neutron的dvr
  14. python debug配置launch.json例子
  15. Scratch制作飞翔的小喵小游戏
  16. 堡塔APP 免费使用教程【图文教程】
  17. Java 将表格数据导入word文档中
  18. orangepi——学习python02
  19. 汇智动力学院——Java 浅谈数据结构和算法
  20. 陈宝生:在升学压力下学校体育有“边缘化”的危险

热门文章

  1. 题解报告——Sandy的卡片
  2. 华为云服务器如何使用
  3. 什么是SaaS系统,谈谈SaaS的好处
  4. 微信扫描普通二维码进入小程序
  5. VideoScribe--超好用的手绘动画制作软件
  6. Excel 数据的统计分析及绘图自动处理的python示例(精益办公实战2)
  7. 关于AD与KiCad绘制PCB的一点看法
  8. SOEM方案 STM32H743 EtherCAT主站 基于STM32H743芯片和SOEM的EtherCAT主站源码
  9. Socks代理是什么?PC端怎么使用Socks5代理?
  10. Centos6下Redis学习(一)——Java客户端Lettuce的使用、Springboot整合