Apache Flink, как получить из Java ObjectNode -> строку JSON? - PullRequest
0 голосов
/ 16 мая 2018

Таким образом, это принимает строки JSON -> Java ObjectNode.

    final DataStream<ObjectNode> inputStream = env
        .addSource(new RMQSource<ObjectNode>(
            connectionConfig,                   // config for the RabbitMQ connection
            "start",                            // name of the RabbitMQ queue to consume
            true,                               // use correlation ids; can be false if only at-least-once is required
            new JSONDeserializationSchema()))   // deserialization schema to turn messages into Java objects
        .setParallelism(1);                     // non-parallel source is only required for exactly-once

Как мне вернуть их из Java ObjectNode -> JSON string?

stream.addSink(new RMQSink<ObjectNode>(
            connectionConfig,
            "stop",
            new JSONSerializationSchema()
        ));

JSONSerializationSchema не существует, но мне нужно что-то подобное.

1 Ответ

0 голосов
/ 17 мая 2018

Используйте пользовательский SerializationSchema, например:

stream.addSink(new RMQSink<ObjectNode>(
            connectionConfig,
            "stop",
            new SerializationSchema<ObjectNode>() {
                    @Override
                    public byte[] serialize( ObjectNode element ) {
                        return element.toString().getBytes();
                    }
            }
        ));
...