如何将Array [Row]放入JSON字符串中

时间:2018-02-09 14:17:58

标签: arrays json scala apache-spark

Array[Row]调用arr(我在df.collect()之后获得),我希望将{J}字符串作为keyvalue对传递:val result = """{"field1": "A", "arr": [""" + arr + """]}"""

{"field1": "A", "arr": [
       {"name":"Ford", "model": "Fiesta"},
       {"name":"Ford", "model": "Mustang"},
       ...
]}

应该是:

arr.get(i).get(arr.get(i).fieldIndex("field1")).toString()

如果我按照上面显示的方式进行操作,它将无效。

我应该迭代这个数组并手动定义每个参数吗?:

{{1}}

1 个答案:

答案 0 :(得分:1)

您应该按照 philantrovert 的建议在问题评论中使用.toJSON进行以下操作

val result = """{"field1":"A","arr":"""+df.toJSON.collectAsList()+"""}"""

如果您使用arr变量,则可以执行

val arr = df.toJSON.collectAsList()
val result = """{"field1":"A","arr":"""+arr+"""}"""