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