1. 程式人生 > 其它 >sparksql on hive 自定義函式

sparksql on hive 自定義函式

編寫自定義函式程式碼

pom座標

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_2.11</artifactId>
            <version>2.1.3</version>
        </dependency>

程式碼

import org.apache.hadoop.hive.ql.exec.UDF;
/**
 * 自定義函式
 */
public class MyFunc extends UDF {
    public String evaluate(String value) {//函式計算邏輯
        return value + "傳入";
    }
}

編寫好之後打包上傳到伺服器中

進入spark-sql操作介面 忽略出現的幾個警告

使用臨時方式註冊方法

新增jar到當前環境中

add jar /home/tools/project/data/udf.jar

建立臨時方法

create temporary function func as "com.MyFunc"

使用臨時方法進行資料查詢

select func(group1) from data_table limit 5;

刪除臨時方法

drop temporary function if exists func;

關鍵操作程式碼

add jar /home/tools/project/data/udf.jar
create temporary function func as "com.MyFunc"
select func(group1) from data_table limit 5;
drop temporary function if exists func

建立永久方法

create function func as 'com.MyFunc' using jar '/home/tools/jar/udf.jar';