Hueのクエリエディターで、自作UDFのFunctionを使う方法
私が採用している方法は、以下の2つ
方法1 クエリエディタのSettingsで、UDFのJARファイルをアップロードし、Functionを定義追加する
①SettingsのFilesで、UDFのJARファイルをアップロードする
私は、/user/hadoopにアップロードしています。
②アップロードしたJARファイルを選択
テキストボックスに、アップロードしたJARファイルへのパスが表示される。
Path: /user/hadoop/udfs-all.jar
③Functionsに、function名とjavaのパッケージ〜クラス名を入力
Name: udf_my_sum
Class: jp.co.sampel.udf.MySum
④実際にクエリから利用する
sample.q
SELECT id, udf_my_sum(price) FROM books;
方法2 s3バケット上のUDFのJARファイルを参照する
事前にアクセスキーなど設定が必要ですが、EMRを利用している事として既にバケットにはアクセス可能な前提
①クエリで、CREATE FUNCTIONする
sample.q
CREATE FUNCTION udf_my_sum AS 'jp.co.sampel.udf.MySum' USING JAR '${LIB}/udfs-all.jar';
SELECT id, udf_my_sum(price) FROM books;
変数:LIB=s3://my-bucket
と設定して実行
他にもあるとは思いますが、基本的にはこの2つで良いかと