簡體   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