hive java編寫udf函數


(一)創建JAVA 代碼--例子

package hiveOpt;

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

public class splitMax extends UDF {

public static int getMax(String[] arr) {
int max = Integer.valueOf(arr[0]);
for (int i = 1; i < arr.length; i++) {
if (Integer.valueOf(arr[i]) > max) {
max = Integer.valueOf(arr[i]);
}
}
return max;
}

public Text evaluate(String mdimlr)

{
Text result = new Text();
String[] a = mdimlr.split(",");

result.set(String.valueOf(getMax(a)));
return result;

}

}

 

(二)上傳jar到hdfs

hadoop fs -put /data/soft/splitMax.jar /tmp

 

(三)登錄hive命令行加載jar

hive> add jar hdfs:///tmp/splitMax.jar;
hive> create temporary function splitmax as 'hiveOpt.splitMax';
hive> show funcations
hive> select splitmax(id) from wobcongfu;

( 四)測試自定義函數
select phone_num,max(myCol1)
from temp_qiu_test1
LATERAL VIEW explode(split(col1,',')) myTable1 AS myCol1
group by phone_num;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM