我已经为我的Apache Flink流实现了MapFunction
。它正在解析传入的元素并将其转换为其他格式,但有时会出现错误(即传入的数据无效)。
我看到了两种可能的处理方式:
因此,我有两个问题:
MapFunction
中的错误? 最佳答案
您可以使用FlatMapFunction
而不是MapFunction
。这将使您仅在元素有效时才发出它。下面显示了一个示例实现:
input.flatMap(new FlatMapFunction<String, Long>() {
@Override
public void flatMap(String input, Collector<Long> collector) throws Exception {
try {
Long value = Long.parseLong(input);
collector.collect(value);
} catch (NumberFormatException e) {
// ignore invalid data
}
}
});