2016-04-18 31 views
0

我試圖從dataframe.I獲取地圖columnName->值試圖如何從數據幀創建地圖並將其轉換成JSON字符串

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())) 

但機器人給了我一個數組[字符串數組[任何] 我希望得到一個地圖[字符串,數組[任何]

我也試過.toMap末轉換陣列來圖,來

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」的JSON字符串:值數組],「縣」:值數組] }

回答

0

如果你只是需要json,你不需要將它轉換成地圖。

下面片段可以用來寫數據框的內容爲JSON文件

dataFrame.write.format("json").save("result.json") 

或者,如果你需要在你的代碼進一步處理JSON字符串,可以使用dataframe.toJSON得到RDD [字符串],其中字符串將是json

+0

我不希望數據框作爲單獨的json記錄。關鍵字的列名和值應該是問題中指定的值的數組。 – Himaprasoon

相關問題