Hi Dongwon, AFAIK, Flink doesn't support the usage like "myscalar(col1, col2, col3) as (col4, col5)". Am I missing something?
If you want to split Tuple2 into two different columns, you can use UDTF. Best, Kurt On Wed, Mar 20, 2019 at 9:59 AM Dongwon Kim <[email protected]> wrote: > Hi, > > I want to split Tuple2 returned by AggregateFunction.getValue into two > different columns in a resultant table. > > Let's consider the following example where myudaf returns Tuple2<Boolean, > Boolean>: > > Table table2 = table1 > .window(Slide.over("3.rows").every("1.rows").on("time").as("w")) > .groupBy("w, name") > .select("name, myudaf(col1, col2, col3) as (col4, col5)") > > Then table2.printSchema() returns (w/ Flink 1.7.2) > > root > |-- name: String > |-- col4: Java Tuple2<Boolean, Boolean> > > whereas my expectation is > > root > |-- name: String > |-- col4: Boolean > |-- col5: Boolean > > When I define a scalar function which returns Tuple2 and use like > "myscalar(col1, col2, col3) as (col4, col5)", it works as expected. > > Is there a possible way of splitting the tuple into two different columns > in Flink-1.7.2? > If not, do I have to define an additional UDF in order to flatten the > tuple? or there's already one I can make use of? > > - Dongwon
