Spark 结构化流:将行转换为 json

Mar*_*iak 5 java json scala apache-spark spark-structured-streaming

我想转换RowDataFrame成只使用火花API JSON字符串。

从输入 Row

+----------------+-----------+
|       someThing|       else|
+----------------+-----------+
|            life|         42|
+----------------+-----------+
Run Code Online (Sandbox Code Playgroud)

myDataFrame
.select(struct("*").as("col"))
.select(to_json(col("col")))
.writeStream()
.foreach(new KafkaWriter())
.start()
Run Code Online (Sandbox Code Playgroud)

using KafkaWriter,即使用row.toString()我得到:

[{  
    "someThing":"life",
    "else":42
}]
Run Code Online (Sandbox Code Playgroud)

当我想得到这个时:

{  
    "someThing":"life",
    "else":42
}
Run Code Online (Sandbox Code Playgroud)

(没有[]

任何的想法?

Mar*_*iak 4

刚刚找到解决方案。使用Row.mkString而不是Row.toString解决了我的情况。