HIVE 编写自定义函数UDF
程序员文章站
2023-11-11 17:47:40
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类。类中要实 ......
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要一致。
详细样例: 解析xml文件
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 * 读取下xml文档,获得document对象。 11 */ 12 13 public class analysisxml extends udf { 14 15 public string evaluate(string stxml) throws documentexception { 16 /** 17 * 节点对象的操作方法 18 */ 19 // document document = reader.read(new file("test.xml")); //解析xml文件 20 string xml = stxml.tostring(); 21 document document = documenthelper.parsetext(xml); // 解析xml字符串 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 下载地址:
2、自己定义函数调用过程:
①加入jar包(在hive命令行里面运行)
hive> add jar /root/analysisxml.jar;
②创建暂时函数 ,hive命令行关闭后,即失效。
hive> create temporary function analysis_xml as ‘analysisxml';
③调用
hive> select id, analysis_xml(contents);
注: jar包中引用第三方包,添加至 ../hive/lib 文件夹下
上一篇: js实现jquery的offset()方法实例教程
下一篇: 自动评估堆溢出的崩溃
推荐阅读
-
HIVE 编写自定义函数UDF
-
WordPress中编写自定义存储字段的相关PHP函数解析
-
hive编写udf处理非utf-8数据
-
Hive中的用户自定义函数UDF
-
编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:求解这三个整数的最大值,函数的返回值为三个参数的最大值。编写一个程序,从键盘输入N组数据,每组分别是任意5个整数,通过两次调用用户自定义函数
-
SQL SERVER 用户自定义函数(UDF)深入解析
-
hive 中自定义 base64 加密 解密 UDF 函数
-
WordPress中编写自定义存储字段的相关PHP函数解析,
-
编写程序,输入年、月、日,计算该 日是该年的第几天。要求:计算日期、判断闰年均使用自定义函数实现。
-
R语言编写、调用自定义函数