【发布时间】:2017-09-08 11:21:06
【问题描述】:
【问题讨论】:
标签: user-defined-functions presto
【问题讨论】:
标签: user-defined-functions presto
像这样定义你的输出函数:
@OutputFunction("row(name double,some double)")
public static void output(SomeState state, BlockBuilder out){
BlockBuilder blockBuilder = DoubleType.DOUBLE.createBlockBuilder(new BlockBuilderStatus(), 1);
DoubleType.DOUBLE.writeDouble(blockBuilder, 1.0);
DoubleType.DOUBLE.writeDouble(blockBuilder, 2.0);
Block block = blockBuilder.build();
out.writeObject(block);
out.closeEntry();
}
这里,我们为row(Name Type)定义参数类型
【讨论】:
创建新的 UDF 有两个步骤
1 创建UDF link
2 RegisterUDF。
即你有UDF签名
long Dt_TIME_ADD(string time,
string duration
[, string default_timezone = 'UTC'])
Here 1 Long is return type
2 TIME_ADD is UDF Name
3 Parms time ,duration and Default parm default_timezone
这可以像这样调用
SELECT ... WHERE TD_TIME_RANGE(time,
'2013-01-01',
TD_TIME_ADD('2013-01-01', '1d'))
【讨论】: