Как преобразовать строковое значение Flink Source [Data Stream] в карту? - PullRequest
0 голосов
/ 17 декабря 2018

Попытка преобразовать исходную строку 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 Ответ

0 голосов
/ 17 декабря 2018

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

import com.fasterxml.jackson.module.scala.DefaultScalaModule
val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)
...