我正在尝试从dataframe获取columnName->值的映射。我尝试了
val g=dataFrame.limit(limit)
val p=g.columns.map(i=>(i,g.select(i).map(_.get(0)).collect()))
和
val g=dataFrame.limit(limit)
val p=g.columns.map(i=>(i->g.select(i).map(_.get(0)).collect()))
但是bot给了我一个数组[String,Array [Any]] 我想得到一个地图[String,Array [Any]]
我最后还尝试了.toMap将数组转换为map,
val g=dataFrame.limit(limit)
val p=g.columns.map(i=>(i,g.select(i).map(_.get(0)).collect())).toMap
val gson=new Gson
gson.toJson(p)
但是这给了我形式为
的json字符串{"key1":"eq_site_deductible","value1":[0.0,0.0,0.0,],"key2":"county","value2":["CLAY COUNTY","CLAY COUNTY","Mary county"]}
我希望得到{" eq_site_deductible":[value array]," county":[value array]}
形式的json字符串答案 0 :(得分:0)
如果您只需要json,则无需将其转换为地图。
可以使用以下代码段将数据帧内容写入json文件
dataFrame.write.format("json").save("result.json")
或者如果您需要在代码中进一步处理json字符串,可以使用dataframe.toJSON来获取RDD [String],其中String将是json