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

Reply via email to