Return Presto Udf 中的行类型

Return Row Type In Presto Udf

我想实现一个 udf,returns 我连续。

我在网上搜索了一下,没有例子。在 presto 的源代码中,我看到了 this 之类的方法,但它采用行数据类型作为参数。没有如何创建行的示例。

谢谢。

创建新的 UDF 有两个步骤

1 创建 UDF link

2 Register UDF。

也就是说你有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'))

像这样定义你的输出函数:

@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();
}  

在这里,我们定义行的参数类型(名称类型)