Hi, Team, Is is possible to convert a Group Windo...
# troubleshooting
s
Hi, Team, Is is possible to convert a Group Window to an Over Window using Table API. I am trying to use session window using the event time attribute which creates a group window. Is it possible to convert this to an Over Window. I am on version 1.16 Sample of the snippet am trying
Copy code
GroupWindowedTable groupWindowedTable = baseTable
            .window(Session.withGap(lit(10).minutes())
                    .on($("received_timestamp")).as("window"));

    WindowGroupedTable windowGroupedTable = groupWindowedTable.groupBy($("window"), $("account_id"));

TablePipeline tablePipeline = windowGroupedTable.select(
                    $("account_id"), $("play_device_upload_time").lastValue().over($("account_id")))
From what the log says, seems like its not possible? But wanted to check if there is something wrong with the way I have chained the calls. Sample log
Copy code
Caused by: org.apache.flink.table.api.ValidationException: Could not resolve over call.
	at org.apache.flink.table.expressions.resolver.rules.OverWindowResolverRule$ExpressionResolverVisitor.lambda$visit$0(OverWindowResolverRule.java:75) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at java.util.Optional.orElseThrow(Unknown Source) ~[?:?]
	at org.apache.flink.table.expressions.resolver.rules.OverWindowResolverRule$ExpressionResolverVisitor.visit(OverWindowResolverRule.java:73) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.expressions.resolver.rules.OverWindowResolverRule$ExpressionResolverVisitor.visit(OverWindowResolverRule.java:57) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.expressions.ApiExpressionVisitor.visit(ApiExpressionVisitor.java:37) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.expressions.UnresolvedCallExpression.accept(UnresolvedCallExpression.java:97) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.expressions.resolver.rules.OverWindowResolverRule.lambda$apply$0(OverWindowResolverRule.java:53) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
	at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:?]
	at org.apache.flink.table.expressions.resolver.rules.OverWindowResolverRule.apply(OverWindowResolverRule.java:54) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.expressions.resolver.ExpressionResolver.lambda$null$2(ExpressionResolver.java:247) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at java.util.function.Function.lambda$andThen$1(Unknown Source) ~[?:?]
	at java.util.function.Function.lambda$andThen$1(Unknown Source) ~[?:?]
	at java.util.function.Function.lambda$andThen$1(Unknown Source) ~[?:?]
	at java.util.function.Function.lambda$andThen$1(Unknown Source) ~[?:?]
	at java.util.function.Function.lambda$andThen$1(Unknown Source) ~[?:?]
	at org.apache.flink.table.expressions.resolver.ExpressionResolver.resolve(ExpressionResolver.java:210) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.operations.utils.OperationTreeBuilder.projectInternal(OperationTreeBuilder.java:199) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.operations.utils.OperationTreeBuilder.project(OperationTreeBuilder.java:174) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at org.apache.flink.table.api.internal.TableImpl$WindowGroupedTableImpl.select(TableImpl.java:638) ~[flink-table-api-java-uber-1.16.0.jar:1.16.0]
	at *******************.*****.execute(Test.java:195) ~[?:?]
	at ****************************.******.main(Test.java:23) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
Any pointers or suggestions much appreciated, thanks in advance
Cc @Martijn Visser
m
Please follow the Slack rules
s
so sorry my bad, missed to see that part πŸ™‚