zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CopyOnWriteArrayList源码阅读笔记
    ArrayList源码阅读笔记
    MySQL和Oracle的区别
    思维导图概览SpringCloud
    Java学习之Request篇
    Java学习之servlet篇
    Java学习之数据库连接池
    Java学习之注解篇
    Java爬取先知论坛文章
    Java学习之爬虫篇
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/15170986.html
Copyright © 2011-2022 走看看