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.