您好,登錄后才能下訂單哦!
小編給大家分享一下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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。