HIVE中的UDF程式設計

2021-08-28 02:54:42 字數 1429 閱讀 3852

udf:一進一出

udaf:多進一出    (aggregation 聚集 類似於count/max/min)

udtf:一進多出

show functions;

檢視乙個函式的使用

desc function extended upper ;

1.修改pom.xml

junit

junit

4.10

test

org.apache.hadoop

hadoop-client

2.5.0

org.apache.hive

hive-jdbc

0.13.1

org.apache.hive

hive-exec

0.13.1

自定義乙個函式,

package com.hive.udf;

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

import org.apache.hadoop.io.text;

/** * implement one or more methods named "evaluate"

* "evaluate" should nerver be a void method

* however it can return "null" if needed.

* @author wensimiao

*hive是基於mapreduce計算的 所有資料型別推薦使用mapreduce中的型別

*/public class lowerudf extends udf

//lower

return new text(str.tostring().tolowercase()) ; }

public static void main(string args)

}

本地測試成功

將自定義的類打包成乙個jar,上傳到linux

命令列使用

add jar /opt/datas/hive_udf.jar ;

create temporary function my_lower as "com.hive.udf.lowerudf" ;

select ename,my_lower(ename) lowername from emp limit 5 ;

執行結果

Hive中UDF的使用

udf user defined function 是對hive自帶函式的一種補充,並極大擴充了hql的作用範圍,不僅使 更加簡潔,也減少了很多重複工作,提高任務執行效率。udf.rank 該函式用於分組limit輸出,如 拉取每個使用者的前100條語料 需要對使用者cuid進行分組後,再分別取每組...

hive中的udf時間函式用法

1 from unixtime函式 用法為將時間戳轉換為時間格式 語法 from unixtime bigint unixtime string format 返回值為string 例如 hive select from unixtime 1326988805,yyyymmddhh from tes...

Hive 中自定義UDF函式

在hive中,編寫自定義udf函式,可以幫助我們更輕鬆的做etl。例如,現在我要求某一列資料的平方,在eclipse新建工程,並新建乙個test包,在test包下新建乙個類square public class square extends udf 然後將 打成jar包,如 test01.jar。然...