我的目標是將DataFrame轉換爲JSONObject的有效JSONArray。如何將Spark Dataframe轉換爲JSONObject
我目前使用:
val res = df.toJSON.collect()
但我得到一個數組[字符串] - JSON轉義的字符串,即數組:
["{\"url\":\"http://www.w3schools.com/html/html_form_action.asp?user=123\",\"subnet\":\"32.2.208.1\",\"country\":\"\",\"status_code\":\"200\"}"]
我正在尋找一個將這些字符串轉換爲實際的JSONObjects的方法,我找到了一些解決方案,建議find and replace characters,但我正在尋找更乾淨的東西。
我試圖使用org.json庫將每個字符串轉換爲JSONObject,但顯然它不是一個可序列化的對象。
有什麼建議嗎?任何可以工作的快速Scala JSON庫?
或者一般情況下它是如何使用toJSON方法的。
更新
這是有點浪費,但這種做法對我的作品:
val res = df.toJSON.map(new JSONObject(_).toString).collect()
由於JSONObject的不可序列化 - 我可以用它的toString得到有效的JSON格式。
如果您仍然對我如何改善它有任何建議 - 請讓我知道。
您可以使用您的數據框的示例數據進行更新嗎? –
當我使用'toJSON'時,我不會看到這些引號。我正在使用Spark 1.6。 – philantrovert
@philantrovert,這很奇怪,我們使用Spark 1.6.1。我在網上看到的關於這個問題的所有問題都表明格式是一樣的。 – LiranBo