我想要做的是读取json格式的字符串,例如
{"a":1, "b":2}
使用flink然后通过其密钥提取特定值,例如1。
请参阅此处:https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/connectors/kafka.html
我所做的是:
val params = ParameterTool.fromArgs(args)
val env = StreamExecutionEnvironment.getExecutionEnvironment
val kafkaConsumer = new FlinkKafkaConsumer010(
params.getRequired("input-topic"),
new JSONKeyValueDeserializationSchema(false),
params.getProperties
)
val messageStream = env.addSource(kafkaConsumer)
但我不太确定如何向前迈进。在上面的链接中,它说我可以使用objectNode.get(“field”).as(Int/String/…)()
按键提取特定值,但我想知道我该怎么做?
或者可以采用完全不同的方式实现我的目标?
谢谢!
答案 0 :(得分:1)
对Kafka的数据应用数据转换,如下所示:
messageStream.map(new MapFunction<ObjectNode, Object>() {
@Override
public Object map(ObjectNode value) throws Exception {
value.get("field").as(...)
}
})