大数据 java hive udf函数的示例代码(手机号码脱敏)

网友投稿 257 2023-04-08

大数据 java hive udf函数的示例代码(手机号码脱敏)

Hive UDFHive UDF 函数1 POM 文件2.UDF 函数3 利用idea打包4 添加hive udf函数4.1 上传jar包到集群4.2 修改集群hdfs文件权限4.3 注册UDF4.4 使用UDF

Hive UDF 函数

1 POM 文件

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

填写自己的组织名称

udf

1.0-SNAPSHOT

UTF8

2.6.0-cdh5.13.3

1.1.0-cdh5.13.3

Apache Hadoop

Apache Hadoop

https://repo1.maven.org/maven2/

cloudera

cloudera

https://repository.cloudera.com/artifactory/cloudera-repos/

org.apache.hadoop

hadoop-common

${hadoop.version}

org.apache.hive

hive-exec

${hive.version}

org.apache.maven.plugins

maven-compiler-plugin

1.8

maven-assembly-plugin

jar-with-dependencies

make-assembly

package

single

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

填写自己的组织名称

udf

1.0-SNAPSHOT

UTF8

2.6.0-cdh5.13.3

1.1.0-cdh5.13.3

Apache Hadoop

Apache Hadoop

https://repo1.maven.org/maven2/

cloudera

cloudera

https://repository.cloudera.com/artifactory/cloudera-repos/

org.apache.hadoop

hadoop-common

${hadoop.version}

org.apache.hive

hive-exec

${hive.version}

org.apache.maven.plugins

maven-compiler-plugin

1.8

maven-assembly-plugin

jar-with-dependencies

make-assembly

package

single

2.UDF 函数

package 填写自己的组织名称;

import org.apache.hadoop.hive.ql.exec.Description;

import org.apache.hadoop.hive.ql.exec.UDF;

// 上传udf jar到集群 hdfs dfs -put udf-1.0-SNAPSHOT-jar-with-dependencies.jar /daKSiQHyMGUta/data_coe/data_asset/prod/db/tmp/udf/

// 修改文件权限 hdfs dfs -chmod -R 777 hdfs://idc-nn/data/data_coe/data_asset/prod/db/tmp/udf/

//注册udf函数 create function tmp.pul as '填写自己的组织名称.PhoneUnlookUdf' using jar 'hdfs://idc-nn/data/data_coe/data_asset/prod/db/tmp/udf/udf-1.0-SNAPSHOT-jar-with-dependencies.jar

public class PhoneUnlookUdf extends UDF {

//重写evaluate方法

public String evaluate(String phone){

if (phone.length() == 11){

String res = phone.substring(0, 3) + "****" + phone.substring(7, phone.length());

System.out.println(res);

return res;

} else {

return phone;

}

}

}

3 利用idea打包

先点clean,在点package

4 添加hive udf函数

集群的某些问题,不能直接通过添加服务器上本地文件到hive增加udf;需要将文件上传到hdfs,然后定义udf函数。

4.1 上传jar包到集群

// 上传udf jar到集群 hdfs dfs -put udf-1.0-SNAPSHOT-jar-with-dependencies.jar /data/data_coe/data_asset/prod/db/tmp/udf/

4.2 修改集群hdfs文件权限

// 修改文件权限 hdfs dfs -chmod -R 777 hdfs://idc-nn/data/data_coe/data_asset/prod/db/tmp/udf/

4.3 注册UDF

//注册udf函数 create function tmp.pul as 'cn.mcd.com.PhoneUnlookUdf' using jar 'hdfs://idc-nn/data/data_coe/data_asset/prod/db/tmp/udf/udf-1.0-SNAPSHOT-jar-with-dependencies.jar

4.4 使用UDF

打开集群hive客户端:

select tmp.pul(phone) from tmp.tmp_order limit 3;

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:idea2020导入spring5.1的源码的详细教程
下一篇:Spring Boot Actuator监控的简单使用方法示例代码详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~