[ 
https://issues.apache.org/jira/browse/FLINK-17074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17084672#comment-17084672
 ] 

Aljoscha Krettek commented on FLINK-17074:
------------------------------------------

I'd say this is only about the DataStream API, we don't plan to put more work 
into the DataSet API so we can leave that as is.

We might consider opening another issue for deprecating similar methods on 
{{DataStream}}/{{KeyedStream}}: the aggregation methods such as {{min()}}, 
{{max()}}, {{sum()}}, and so on.

> Deprecate DataStream.keyBy() that use tuple/expression keys
> -----------------------------------------------------------
>
>                 Key: FLINK-17074
>                 URL: https://issues.apache.org/jira/browse/FLINK-17074
>             Project: Flink
>          Issue Type: Improvement
>          Components: API / DataStream
>            Reporter: Aljoscha Krettek
>            Assignee: Etienne Chauchot
>            Priority: Major
>              Labels: starter
>             Fix For: 1.11.0
>
>
> Currently you can either specify a {{KeySelector}}, tuple positions, and 
> expression keys? I think {{KeySelectors}} are strictly superior and with 
> lambdas (or function references) quite easy to use.  Tuple/expression keys 
> use reflection underneath to do the field accesses, so performance is 
> strictly worse. Also, when using a {{KeySelector}} you will have a meaningful 
> key type {{KEY}} in your operations while for tuple/expression keys the key 
> type is simply {{Tuple}}.
> Tuple/expression keys were introduced before Java got support for lambdas in 
> Java 8 and before we added the Table API. Nowadays, using a lambda is little 
> more typing than using an expression key but is (possibly) faster and more 
> type safe. The Table API should be used for these more 
> expression-based/relational use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to