小编Mah*_*ani的帖子

MapFunction 的实现不可序列化 Flink

我正在尝试实现一个类,该类使用户能够操作 N 个输入流,而不受输入流类型的限制。

首先,我想将所有输入数据流转换为 keyedStreams。因此,我将输入数据流映射到元组中,然后应用 KeyBy 将其转换为密钥流。

我总是遇到序列化问题,我尝试遵循本指南https://ci.apache.org/projects/flink/flink-docs-stable/dev/java_lambdas.html但它不起作用。

我想知道的是:

  1. Java 中的序列化/反序列化是什么?以及用途。
  2. 在 Flink 中通过序列化可以解决哪些问题
  3. 我的代码有什么问题(您可以在代码和错误消息下面找到)

非常感谢。

主要类别:

public class CEP {

private  Integer streamsIdComp = 0;
final  private Map<Integer, DataStream<?> > dataStreams = new HashMap<>();
final  private Map<Integer, TypeInformation<?>> dataStreamsTypes = new HashMap<>();

public <T> KeyedStream<Tuple2<Integer, T>, Integer> converttoKeyedStream(DataStream<T> inputStream){

    Preconditions.checkNotNull(inputStream, "dataStream");
    TypeInformation<T> streamType = inputStream.getType();

    KeyedStream<Tuple2<Integer,T>,Integer> keyedInputStream = inputStream.
            map(new MapFunction<T, Tuple2<Integer,T>>() {
                @Override
                public Tuple2<Integer, T> map(T value) throws Exception {
                    return Tuple2.of(streamsIdComp, value);
                }
            }). …
Run Code Online (Sandbox Code Playgroud)

java serialization apache-flink flink-streaming

2
推荐指数
1
解决办法
6077
查看次数