Mein Ziel ist es, ein DataFrame in ein gültiges JSONArray von JSONObject zu konvertieren.So konvertieren Sie ein Spark-Datenframe in JSONObject
ich zur Zeit mit:
val res = df.toJSON.collect()
Aber ich bin immer ein Array [String] - Array von JSON-Strings entkommen, das heißt:
["{\"url\":\"http://www.w3schools.com/html/html_form_action.asp?user=123\",\"subnet\":\"32.2.208.1\",\"country\":\"\",\"status_code\":\"200\"}"]
Ich suche eine Weise, diese Zeichenfolgen in tatsächliche JSONObjects zu konvertieren, fand ich ein paar Lösung, die find and replace characters vorgeschlagen, aber ich bin auf der Suche nach etwas sauberer.
Ich habe versucht, jede Zeichenfolge zu einem JSONObject mit org.json Bibliothek zu konvertieren, aber offensichtlich ist es kein Serializable-Objekt.
Irgendwelche Vorschläge? jede schnelle Scala JSON-Bibliothek, die funktionieren kann?
Oder wie im Allgemeinen vorgeschlagen wird, mit der toJSON-Methode zu arbeiten.
aktualisiert
Das ist ein bisschen verschwenderisch, aber diese Option funktioniert für mich:
val res = df.toJSON.map(new JSONObject(_).toString).collect()
Da JSONObject ist nicht serializable - ich sein toString verwenden kann, ein gültiges JSON-Format zu erhalten.
Wenn Sie noch Vorschläge haben, wie ich es verbessern kann - lassen Sie es mich wissen.
Können Sie mit Beispieldaten Ihres Datenrahmens aktualisieren? –
Ich bekomme diese Zitate nicht entkommen, wenn ich 'toJSON' verwende. Ich benutze Spark 1.6. – philantrovert
@philantrovert, das ist seltsam, wir verwenden Spark 1.6.1. Alle Fragen, die ich online zu diesem Thema sah, gaben an, dass das Format das gleiche ist. – LiranBo