您好,登录后才能下订单哦!
小编给大家分享一下Hive中如何配置与编写自定义UDF函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
环境介绍:CentOS7+hive-1.1.0-cdh6.7.0+IntelliJ IDEA+Maven3.3.9
1、创建工程
打开IntelliJ IDEA
File-->New-->Project...-->Maven选择Create from archetye-->org.apache.maven.archety:maven-archetype-quitkstart
2、配置
2.1、增加内容如下:
在工程中找到pom.xml文件中hadoop-common 、hive-exec 、hive-jdbc
点击(此处)折叠或打开
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- hadoop、hive版本信息 -->
<hadoop.version>2.6.0-cdh6.7.0</hadoop.version>
<hive.version>1.1.0-cdh6.7.0</hive.version>
</properties>
<!-- hadoop依赖 -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<!-- hive依赖 -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>${hive.version}</version>
</dependency>
</dependencies>
<!-- cdn资源仓库 -->
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
2.2、在<repository></repository>中修改内容如下:
点击(此处)折叠或打开
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
3、创建类,并编写一个UDF HelloUDF.java,代码如下:
点击(此处)折叠或打开
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class HelloUDF extends UDF {
public Text evaluate(Text input) {
return new Text("Hello:" + input);
}
public static void main(String args[]){
HelloUDF helloUDF = new HelloUDF();
Text rs = helloUDF.evaluate(new Text("zhangsan"));
System.out.println(rs.toString());
}
}
4、测试UDF类,在上又键选择Run 'HelloUDF.main()'
5、打包:
在IDEA菜单中选择view-->Tool Windows-->Maven Projects,然后在Maven Projects窗口中选择【工程名】-->Lifecycle-->package,在package中右键选择Run Maven Build开始打包
执行成功后在日志中找:
[INFO] Building jar: D:\software\ruozedata_workspace\basic02-hive\target\hive-1.0.jar
以上是“Hive中如何配置与编写自定义UDF函数”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。