[ https://issues.apache.org/jira/browse/FLINK-7629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gabor Gevay updated FLINK-7629: ------------------------------- Description: In the Scala API, {{KeyedStream.maxBy}} and similar methods currently only work with a field name, and not with nested field expressions, such as "fieldA.fieldX". (Their documentation says this should work.) The reason for this is that the string overload of {{KeyedStream.aggregate}} uses {{fieldNames2Indices}} and then calls the integer overload. Instead, it should create a {{SumAggregator}} or {{ComparableAggregator}} directly, as the integer overload does (and as the Java API does). The ctors of {{SumAggregator}} or {{ComparableAggregator}} will call {{FieldAccessorFactory.getAccessor}}, which will correctly handle a nested field expression. was: In the Scala API, {{KeyedStream.maxBy}} and similar methods currently only work with a field name, and not with nested field expressions, such as "fieldA.fieldX". (This contradicts their documentation.) The reason for this is that the string overload of {{KeyedStream.aggregate}} uses {{fieldNames2Indices}} and then calls the integer overload. Instead, it should create a {{SumAggregator}} or {{ComparableAggregator}} directly, as the integer overload does (and as the Java API does). The ctors of {{SumAggregator}} or {{ComparableAggregator}} will call {{FieldAccessorFactory.getAccessor}}, which will correctly handle a nested field expression. > Scala stream aggregations should support nested field expressions > ----------------------------------------------------------------- > > Key: FLINK-7629 > URL: https://issues.apache.org/jira/browse/FLINK-7629 > Project: Flink > Issue Type: Bug > Components: Scala API, Streaming > Reporter: Gabor Gevay > Assignee: Gabor Gevay > Priority: Minor > Fix For: 1.4.0 > > > In the Scala API, {{KeyedStream.maxBy}} and similar methods currently only > work with a field name, and not with nested field expressions, such as > "fieldA.fieldX". (Their documentation says this should work.) > The reason for this is that the string overload of {{KeyedStream.aggregate}} > uses {{fieldNames2Indices}} and then calls the integer overload. Instead, it > should create a {{SumAggregator}} or {{ComparableAggregator}} directly, as > the integer overload does (and as the Java API does). The ctors of > {{SumAggregator}} or {{ComparableAggregator}} will call > {{FieldAccessorFactory.getAccessor}}, which will correctly handle a nested > field expression. -- This message was sent by Atlassian JIRA (v6.4.14#64029)