[英]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.