Flink Kafka连接器-FlinkKafkaConsumer中的JsonSmile支持

时间:2019-02-13 15:16:26

标签: apache-flink flink-streaming

当我运行以下代码时:

public SourceFunction<ObjectNode> get() {
        return new FlinkKafkaConsumer<>(topic,
                new AbstractDeserializationSchema<ObjectNode>() {
                    @Override
                    public ObjectNode deserialize(byte[] message) throws IOException {
                        ObjectReader objectReader =
                                new ObjectMapper()
                                        .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
                                        .readerFor(JsonNode.class)
                                        .withFormatDetection(
                                                new ObjectMapper().readerFor(com.fasterxml.jackson.databind.JsonNode.class),
                                                new ObjectMapper(new SmileFactory()).readerFor(JsonNode.class));

                        return objectReader.readValue(message);
                    }
                },
                properties);

//        return new FlinkKafkaConsumer<>(topic,
//                                            new JSONKeyValueDeserializationSchema(false),
//                                            properties);
    }

我遇到以下错误:

  org.apache.flink.api.common.InvalidProgramException: The implementation of the FlinkKafkaConsumerBase is not serializable. The object probably contains or references non serializable fields


.

以上所有都是杰克逊类,除了返回类型ObjectNode来自flink包。

如何在Flink的源kafka连接器中解析来自Kafka的json微笑?

0 个答案:

没有答案