【发布时间】:2021-07-10 02:35:42
【问题描述】:
我有一个包含两列 id、json_string 的表,需要将 json_string 转换为 MongoDB 文档格式。我正在将数据从 Spark/Scala 发送到 MongoDB。
我尝试使用 withColumn,但仍然没有得到所需的格式。这是我到目前为止所拥有的,因此非常感谢任何帮助。
原始json字符串样本(df)
val df=spark.sql("select id, json_string from mytable")
{"id":"0001","json_string":"{\"header\": {\"column1\":\"value1\",\"column2\":\"value2\"},\"tail\": [{\"column3\":\"value3\",\"column4\":\"value4\",\"column5\":\"value5\"}]}"}
使用 withColumn (df2) 我得到这个:
val df2=df.withColumn("json_string",from_json(col("json_string"),MapType(StringType,StringType)))
{"id":"0001","json_string":{"header":"{\"column1\":\"value1\",\"column2\":\"value2\"}","tail":"[{\"column3\":\"value3\",\"column4\":\"value4\",\"column5\":\"value5\"}]"}}
所需格式:
{"id":{"$id":"0001"},"header":{"column1":"value1","column2":"value2"},"tail":[{"column3":"value3","column4":"value4","column5":"value5"}]}
【问题讨论】:
标签: json mongodb scala apache-spark struct