• FLINK基础(92): DS算子与窗口(6)单流算子(5)KeyBy(1)


    KeyBy

    DataStream → KeyedStream

    keyBy通过指定key来将DataStream转换成KeyedStream。基于不同的key,流中的事件将被分配到不同的分区中去。所有具有相同key的事件将会在接下来的操作符的同一个子任务槽中进行处理。拥有不同key的事件可以在同一个任务中处理。但是算子只能访问当前事件的key所对应的状态。

    如图5-4所示,把输入事件的颜色作为key,黑色的事件输出到了一个分区,其他颜色输出到了另一个分区。

    keyBy()方法接收一个参数,这个参数指定了key或者keys,有很多不同的方法来指定key。我们将在后面讲解。下面的代码声明了id这个字段为SensorReading流的key。

    scala version

     
    val keyed: KeyedStream[SensorReading, String] = readings.keyBy(r => r.id)
    

    匿名函数r => r.id抽取了传感器读数SensorReading的id值。

    java version

     
    KeyedStream<SensorReading, String> keyed = readings.keyBy(r -> r.id);
    

    匿名函数r -> r.id抽取了传感器读数SensorReading的id值。

    dataStream.keyBy(value -> value.getSomeKey());
    dataStream.keyBy(value -> value.f0);

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/15170986.html

  • 相关阅读:
    DB2去重的几种方法
    split命令:文件切割
    DB2中横表纵表互换
    做一个思想的码农
    access应用分享
    回顾2015年
    笑看互联网金融
    Razor语法
    数据库操作(二)
    SQL Server数据库简介(一)
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/15170986.html
Copyright © 2020-2023  润新知