大数据 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 文件



 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
     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 /data/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

大数据 java hive udf函数的示例代码(手机号码脱敏)_第1张图片

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;
···

总结

到此这篇关于大数据 java hive udf函数(手机号码脱敏)的文章就介绍到这了,更多相关大数据hive udf函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(大数据 java hive udf函数的示例代码(手机号码脱敏))