Как преобразовать строковое значение Flink Source [ Data Stream ] в карту?

Попытка преобразовать исходную строку Apache Flink в карту с помощью Scala.

Моя исходная потоковая строка: key1=value1key2=2000-12-17 00:00:00key3=Testkey4=08.89198key5=103.000

Код:

val environment = StreamExecutionEnvironment.getExecutionEnvironment
val out  = environment.addSource(...)
val mapper = new ObjectMapper()
val texToMap = out.map(mapper.readValue(_,classOf[Map[Object,Object]])
println(textToJson)

Его ошибка броска, как

org.apache.flink.shaded.jackson2.com.fasterxml.jackson.core.JsonParseException: нераспознанный токен 'key1': ожидалось ('true', 'false' или 'null')

Есть ли способ преобразовать значение String в Map, так как я новичок в реализации Flink.

1 ответ

Apache Flink использует заштрихованную банку Джексона для некоторых специальных целей. В вашем случае вам нужно импортировать com.fasterxml.jackson.databind.ObjectMapper вместо затененной зависимости Флинка от Джексона.
И в то же время вам это нужно, потому что вы используете Scala.

import com.fasterxml.jackson.module.scala.DefaultScalaModule
val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)
Другие вопросы по тегам