[16]-presto UDFs開発-プラグイン注入式
7581 ワード
#Presto UDFs開発例GitHub presto-udfs開発はHIVE UDFsの一部をサポートしています. gitコードpresto-udfs、新しいテストudf、UdfTest文字列strを入力してstrを返しますhjw パッケージjar Pretoルートディレクトリpluginディレクトリの下にudfsフォルダ を新規作成梱包されたudfs-2.0.2-SNAPSHOT.jarレプリケーション 再起動サービス(ここでは単機で、自機サービスのみを起動すればよい、クラスタは . CLI を起動する
戻り値のタイプに問題があるので、しばらく置いておきます...空いてからタイプの問題をチェックします
Slice{base=[B@6d9ac4da, address=16, length=3}_hjw
#参照ディレクトリ presto-udfs Plugging in Presto UDFs Function not registered error #3967 spi-overview
package com.qubole.presto.udfs.udfLearn;
import com.facebook.presto.spi.function.Description;
import com.facebook.presto.spi.function.ScalarFunction;
import com.facebook.presto.spi.function.SqlType;
import com.facebook.presto.spi.type.StandardTypes;
import io.airlift.slice.Slice;
import static io.airlift.slice.Slices.utf8Slice;
public class UdfTest
{
private UdfTest() {}
@Description("This is a udf test, return a result equals concat(input,'_hjw')")
@ScalarFunction("udf_test")
@SqlType(StandardTypes.VARCHAR)
public static Slice locateString(@SqlType(StandardTypes.VARCHAR) Slice input)
{
StringBuilder result = new StringBuilder();
result.append(input).append("_hjw");
return utf8Slice(result.toString());
}
}
mvn package
/presto-server-0.191/plugin$ ls
accumulo geospatial memory presto-thrift sqlserver
atop hive-hadoop2 ml raptor teradata-functions
blackhole jmx mongodb redis tpcds
cassandra kafka mysql redshift tpch
example-http localfile postgresql resource-group-managers udfs
/plugin/udfs$ ls
udfs-2.0.2-SNAPSHOT.jar
を参照)/bin$ ./launcher start
Started as 790
Presto/CLI/presto$ ./presto --server localhost:8080 --catalog hive --schema default
presto:default>
presto:default> select udf_test('str')
-> ;
_col0
---------------------------------------------------
Slice{base=[B@6d9ac4da, address=16, length=3}_hjw
(1 row)
Query 20180212_052513_00002_ntdq9, FINISHED, 1 node
Splits: 17 total, 17 done (100.00%)
0:00 [0 rows, 0B] [0 rows/s, 0B/s]
戻り値のタイプに問題があるので、しばらく置いておきます...空いてからタイプの問題をチェックします
Slice{base=[B@6d9ac4da, address=16, length=3}_hjw
#参照ディレクトリ