UDF開發以及如何添加到HIVE中

自定義開發案例

1)創建一個java工程,並創建一個lib文件夾

2)將hive的jar包解壓後,將apache-hive-1.2.2-bin\lib文件下的jar包都拷貝到java工程中。

3)創建一個類

package com.lzl.hive;

import org.apache.hadoop.hive.ql.exec.UDF;

 

public class Lower extends UDF {

 

       public String evaluate(final String s) {

             

              if (s == null) {

                     return null;

              }

             

              return s.toString().toLowerCase();

       }

}

4)打成jar包上傳到服務器/opt/module/jars/udf.jar

5)將jar包添加到hive的classpath

hive (default)> add jar /opt/module/jars/udf.jar;

6)創建臨時函數與開發好的java class關聯

hive (default)> create temporary function my_lower as "com.lzl.hive.Lower";

7)即可在hql中使用自定義的函數strip 

hive (default)> select ename, my_lower(ename) lowername from emp;

導入HIVE方式

臨時添加 jar 包

hive (default)> add jar /opt/module/jars/udf.jar;

永久添加 jar 包

在 hive-site.xml 文件中添加:

<property>
<name>hive.aux.jars.path</name>
<value>file:///opt/module/hive/lib/json-serde-1.3.8-jar-with-dependencies.jar,file:///opt/module/jar/udf.jar</value>
</property>

永久註冊

hive (default)>create function getdaybegin AS 'com.lzl.hive.Lower';

刪除函數

hive (default)>drop function getdaybegin;

注意:在哪個數據庫中註冊的永久函數,必須在哪個數據庫下將該方法刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章