HiveのUDFおよびカスタム関数の例
1465 ワード
Hive公式のUDFマニュアルの住所は:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
内蔵関数のショートカットをテストします。
テーブルdualを作成します
ロードデータをdualテーブルに
関数の内蔵を試みる
カスタム関数の例
Hiveが提供する内蔵関数が私達の要求を満たすことができない場合があります。この時はカスタム関数が必要です。次に、カスタム関数を作って、ToLowerCaseの機能を実現します。
新規Javaプロジェクト
Hiveのlibディレクトリの下のJarパッケージをプロジェクトに導入する必要があります。
コード
コードは以下の通りです
JavaのプロジェクトをJavaパッケージにしてサーバーにアップロードします。次のコードを実行します。
次にカスタム関数を作成して、それを対応させます。
内蔵関数のショートカットをテストします。
テーブルdualを作成します
ロードデータをdualテーブルに
関数の内蔵を試みる
カスタム関数の例
Hiveが提供する内蔵関数が私達の要求を満たすことができない場合があります。この時はカスタム関数が必要です。次に、カスタム関数を作って、ToLowerCaseの機能を実現します。
新規Javaプロジェクト
Hiveのlibディレクトリの下のJarパッケージをプロジェクトに導入する必要があります。
コード
コードは以下の通りです
package tech.mrbcy.bigdata.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class ToLowerCase extends UDF{
public String evaluate(String field){
return field.toLowerCase();
}
}
JarのカバンにするJavaのプロジェクトをJavaパッケージにしてサーバーにアップロードします。次のコードを実行します。
hive> add jar /root/udf.jar;
出力結果は以下の通りです。Added [/root/udf.jar] to class path
Added resources: [/root/udf.jar]
ユーザー定義の関数を作成次にカスタム関数を作成して、それを対応させます。
create temporary function tolow as 'tech.mrbcy.bigdata.udf.ToLowerCase';
カスタム関数を使うselect * from t_p;
出力結果:18 Angla
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
カスタム関数を使用した後の結果:select id,tolow(name) from t_p;
出力結果は:18 angla
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14