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。然...