[
https://issues.apache.org/jira/browse/FLINK-8560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16363537#comment-16363537
]
ASF GitHub Bot commented on FLINK-8560:
---------------------------------------
GitHub user bowenli86 opened a pull request:
https://github.com/apache/flink/pull/5481
[FLINK-8560] Access to the current key in ProcessFunction after keyBy()
## What is the purpose of the change
Currently, it is required to store the key of a keyBy() in the
processElement method to have access to it in the OnTimerContext.
This is not so good as you have to check in the processElement method for
every element if the key is already stored and set it if it's not already set.
A possible solution would adding OnTimerContext#getCurrentKey() or a
similar method. Maybe having it in the open() method could maybe work as well.
## Brief change log
added `OnTimerContext#getCurrentKey()`
One limitation is that this impl of `getCurrentKey()` currently is not
strongly typed. Declaring the key's type requires adding a new generic type to
`ProcessFunction` - making the declaration from `ProcessFunction<IN, OUT>` to
`ProcessFunction<IN, K, OUT>`. I'm worried it may break user's application, so
I decide to make `getCurrentKey()` return an object. I'd like to discuss the
feasibility of having strong type.
## Verifying this change
This change is already covered by existing tests, such as
*KeyedProcessOperatorTest*.
## Does this pull request potentially affect one of the following parts:
none
## Documentation
- Does this pull request introduce a new feature? (yes)
- If yes, how is the feature documented? (docs / JavaDocs)
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/bowenli86/flink FLINK-8560
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/flink/pull/5481.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #5481
----
commit c5b8a4f27094b88c8641e2bdd30ea0ca65a7a4be
Author: Bowen Li <bowenli86@...>
Date: 2018-02-13T06:33:06Z
[FLINK-8560] Access to the current key in ProcessFunction after keyBy()
----
> Access to the current key in ProcessFunction after keyBy()
> ----------------------------------------------------------
>
> Key: FLINK-8560
> URL: https://issues.apache.org/jira/browse/FLINK-8560
> Project: Flink
> Issue Type: Wish
> Components: DataStream API
> Reporter: Jürgen Thomann
> Assignee: Bowen Li
> Priority: Minor
>
> Currently it is required to store the key of a keyBy() in the processElement
> method to have access to it in the OnTimerContext.
> This is not so good as you have to check in the processElement method for
> every element if the key is already stored and set it if it's not already set.
> A possible solution would adding OnTimerContext#getCurrentKey() or a similar
> method. Maybe having it in the open() method could maybe work as well.
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Getting-Key-from-keyBy-in-ProcessFunction-tt18126.html
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)