HIVE 编写自定义函数UDF
eclipse中编写UDF
①新建JAVA项目 并添加 hive-exec-2.1.0.jar 和hadoop-common-2.7.3.jar ,保证与集群中的版本一致
②UDF类要继承org.apache.hadoop.hive.ql.exec.UDF类。类中要实现evaluate。
当我们在hive中使用自己定义的UDF的时候,hive会调用类中的evaluate方法来实现特定的功能
③导出项目为jar文件。
注:项目的jdk与集群的jdk要一致。
详细样例: 解析 文件
1 import org.apache.hadoop.hive.ql.exec.UDF; 2 3 import java.util.List; 4 import org.dom4j.Document; 5 import org.dom4j.DocumentException; 6 import org.dom4j.DocumentHelper; 7 import org.dom4j.Element; 8 9 /** 10 * 读取下 文档,获得document对象。 11 */ 12 13 public class analysis extends UDF { 14 15 public String evaluate(String st ) throws DocumentException { 16 /** 17 * 节点对象的操作方法 18 */ 19 // Document document = reader.read(new File("test. ")); //解析 文件 20 String = st .toString(); 21 Document document = DocumentHelper.parseText( ); // 解析 字符串 22 // 获取文档根节点 23 Element root = document.getRootElement(); 24 // 输出根标签的名字 25 // System.out.println(root.getName()); 26 // 获取根节点下面的所有子节点(不包过子节点的子节点) 27 List<Element> list = root.elements(); 28 String contest = ""; 29 // 遍历List的方法 30 for (Element e : list) { 31 contest += e.getStringValue() + "|"; // 节点值 32 } 33 return contest; 34 35 // for (Element e:list){ 36 // System.out.println(e.getName()); /节点名 37 // } 38 39 } 40 41 }
注:其中引用了第三方包 dom4j-1.6.1.jar 下载地址: dom4j-1.6.1.jar
2、自己定义函数调用过程:
①加入jar包(在hive命令行里面运行)
hive> add jar /root/analysis .jar;
②创建暂时函数 ,hive命令行关闭后,即失效。
hive> create temporary function analysis_ as ‘analysis ';
③调用
hive> select id, analysis_ (contents);
注: jar包中引用第三方包,添加至 ../hive/lib 文件夹下
继续阅读与本文标签相同的文章
上一篇 :
redis-trib.rb命令使用方法及详解
下一篇 :
回顾8年云栖大会: 见证中国互联网斗转星移
-
字节跳动要做一款24小时在家陪读的AI教练,原锤子团队参与研发
2026-05-18栏目: 教程
-
全能扫描工具,支持OCR文字识别,全平台
2026-05-18栏目: 教程
-
区块链国家队来了!国家信息中心与银联等联合发布区块链服务网
2026-05-18栏目: 教程
-
什么是企业部署物联网的重点?
2026-05-18栏目: 教程
-
法大大创始人兼CEO黄翔:中国电子签名市场渗透率不到1% 复合增长率可达200%
2026-05-18栏目: 教程
