如何将flink source[data stream]字符串值转换为map?

eit6fx6z  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(623)

正在尝试使用scala将apache flink源字符串转换为map。
我的源流字符串: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”)
有没有什么方法可以将字符串值转换为Map,因为我是flink实现的新手。

w80xi6nr

w80xi6nr1#

apache flink使用jackson着色jar进行一些特殊用途。在您的情况下,您需要导入 com.fasterxml.jackson.databind.ObjectMapper 而不是Flink对Jackson的依赖。
同时,您需要这个,因为您使用的是scala。

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

相关问题