HI, @Bial Liu. 首先多谢你的解答,抱歉我后面一直忙,没有回复。我今天又看了一下,发现是我理解的不对。
首先你说的部分是对的,keyBy,只是通过 KeyGroupStreamPartitioner 对 key进行hash
分组,决定具体的发送对象,而对象的个数,就是下个节点的并行度。不会针对key的具体值做分组。
但另一方面,xxx.keyby(0).sum(0)
Hi, 尝试理解fli一下你的疑问
“其中,每个具体mapFunc处理的数据,应该是相同的key数据。不知理解是否正确”
-> keyby 只会保证相同 key 的数据会被分在相同 mapFunc 中,每个 mapFunc 可能会处理不同 key 的数据,详见官网文档:
https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/stream/operators/
Yaoting Gong 于2019年4月4日周四 下午2:00写道:
> 大家好,
>
>
大家好,
先说本人的理解,keyed(..).flatmap(mapFunc())
其中,每个具体mapFunc处理的数据,应该是相同的key数据。不知理解是否正确。
我的具体情况是
我对数据对校验处理。首先根据设备id (uuid) 分组,然后针对不同分组进行数据校验。
部分代码如下:
rowData.filter(legalData _)
.map(data => BehaviorComVO(getText(data, "id"), getText(data, "uuid"),
getText(data, "session_id"), getText(data,