Ich habe einen Prozess, der Daten von einem Mongodb mit mongoexport
exportiert. Als documentation erwähnt alle json Ausgabe ist in Strict ModusMongoexport strenge JSON Last in Spark
Dies bedeutet, Daten wie folgt aussehen:
"{amount":{"$numberLong":"3"},"count":{"$numberLong":"245"}}
Wo, wie meine Scala Fallklasse definiert ist als:
case class MongoData(amount: Long, count: Long)
Lesen der Daten wird natürlich wie folgt fehlschlagen:
spark
.read
.json(inputPath)
.as[MongoData]
Gibt es eine Möglichkeit, entweder den Export von Mongo ohne den strikten Modus oder die json in Scala zu importieren, ohne jedes Feld auf die entsprechende Struktur manuell Umstrukturierung?
'mongoexport' ist so konzipiert, json zu produzieren, die roundtripped werden kann. Voraussetzung dafür ist, dass keine Typinformationen verloren gehen. Ich denke, Ihre Lösung funktioniert gut in Anbetracht der Art der Eingabe. – Ross
Gibt es andere Open Source (CLI) Tools, die den Export von Mongo ohne die strikte Option erlauben? –
Momentan, jedoch aufgrund von [DRIVERS-342] (https://jira.mongodb.org/browse/DRIVERS-342), wird eine entspannte JSON-Spezifikation gerade ratifiziert. Einmal eingestellt, werden alle unterstützten Treiber aktualisiert und fügen die neue entspannte Einstellung hinzu. Ich bin nicht sicher, ob es aktuelle Pläne für den Server gibt, um es auch zu unterstützen. – Ross