Flink中如何指定字段

Flink中不会在输入类型中定义好键值,而是将键值作为一个函数输入值

接下来讨论数据类型定义引用字段和键值的几种方法.

1.字段位置

使用字段位置,这一单常用于数组 元祖的类型

通过元素的位置来定义键值

图片

当然可以定义复合键值对,比如下面的

图片

2.字段表达式

使用字段的名称来表示选择的字段

图片

比如上面的样例类,我们就可以将字段id作为分区的键值

图片

POJO和样例类的方式一致,而且支持嵌套,及我在类中包含另一个POJO类,比如我们使用嵌套字段,可以使用 “.”来获取嵌套数据

图片

或者在嵌套中获取元祖

图片

3.使用键值选择器

使用键值选择器KeySelector函数,会从输入事件中提取键值

创建一个具有确定类型的键值选择器

图片

KeySelector函数会接收一个输入项,返回一个键值.

这个键值甚至可以使用计算得到的,比如下面我们通过计算得到一个字段的最大值,作为键值

图片

发表评论

邮箱地址不会被公开。 必填项已用*标注