繁体   English   中英

Flink DataStream map Object 到对象列表

[英]Flink DataStream map Object to list of Objects

我正在尝试将 object A 的 DataStream 转换为 Object B 的列表。如下例所示,我正在从 flink 消费者读取 DataStream,我需要转换为 DataStream,以便我可以在 timeWindow 上运行一些过滤器和聚合MappedMetric 对象。 一个 LogEvent 可能会导致 MappedMetric object 列表,因此如果我使用 MapFunction,结果将是 DataStream<List>。 但是,我认为聚合不能在 DataStream<List> 上运行。 非常感谢任何帮助。 提前致谢。

// Input Object
public class LogEvent {
    private String id;
    private long timestamp;
    private List<LogMessage> message;
}

public class LogMessage {
    private String accountId;
    private List<Metric> metrics;
}

public class Metric {
    private String name;
    private double value;
}

// Should be transformed to 

public class MappedMetric {
    private String accountId;
    private String name;
    private double value;
    private long timestamp;
}

final DataStream<LogEvent> inputDataStream = **read from Flink consumer**
final DataStream<MappedMetric> aggregatedMetrics = inputDataStream
                .map(**SomeMapFunction**)
                .keyBy(**SomeKey**)
                
                
                

您想使用FlatMap function,它可以为单个输入生成多个结果。 每个结果都是一个MappedMetric记录,而不是一个列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM