zoukankan      html  css  js  c++  java
  • FLINK基础(116): DS PROCESS FUNCTION (1) 侧输出 Side Outputs

    When using side outputs, you first need to define an OutputTag that will be used to identify a side output stream:

    // this needs to be an anonymous inner class, so that we can analyze the type
    OutputTag<String> outputTag = new OutputTag<String>("side-output") {};

    Notice how the OutputTag is typed according to the type of elements that the side output stream contains.

    Emitting data to a side output is possible from the following functions:

    You can use the Context parameter, which is exposed to users in the above functions, to emit data to a side output identified by an OutputTag. Here is an example of emitting side output data from a ProcessFunction:

    DataStream<Integer> input = ...;
    
    final OutputTag<String> outputTag = new OutputTag<String>("side-output"){};
    
    SingleOutputStreamOperator<Integer> mainDataStream = input
      .process(new ProcessFunction<Integer, Integer>() {
    
          @Override
          public void processElement(
              Integer value,
              Context ctx,
              Collector<Integer> out) throws Exception {
            // emit data to regular output
            out.collect(value);
    
            // emit data to side output
            ctx.output(outputTag, "sideout-" + String.valueOf(value));
          }
        });

    For retrieving the side output stream you use getSideOutput(OutputTag) on the result of the DataStream operation. This will give you a DataStream that is typed to the result of the side output stream:

    final OutputTag<String> outputTag = new OutputTag<String>("side-output"){};
    
    SingleOutputStreamOperator<Integer> mainDataStream = ...;
    
    DataStream<String> sideOutputStream = mainDataStream.getSideOutput(outputTag);

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

  • 相关阅读:
    yarn安装ant-报错
    Linux扩展分区记录
    转载--tomcat调优
    转发:tomcat的acess_log打印post请求参数,分析日志
    经纬度差和米单位的换算
    loadrunner 11 安装与使用
    前端知识图谱
    linux-nc命令介绍
    双网卡设置(转:https://www.cnblogs.com/visionfeng/p/5825078.html)
    网络设备介绍
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/15183037.html
Copyright © 2011-2022 走看看