0

Ich habe Sammlung col dieSpark2 mongodb Anschluss polymorphen Schema

{ 
    '_id': ObjectId(...) 
    'type': "a" 
    'f1': data1 
} 

auf derselben Sammlung enthält ich habe

{ 
    '_id': ObjectId(...) 
    'f2': 222.234 
    'type': "b" 
} 

Spark MongoDB connector Ist das nicht fein arbeiten. Es sind die Daten in falsche Felder

beispielsweise neu anordnen:

{ 
    '_id': ObjectId(...) 
    'type': "a" 
    'f1': data1 
} 


{ 
    '_id': ObjectId(...) 
    'f1': data2 
    'type': "a" 
} 

Rdd wird:

------------------------ 
| id | f1 | type | 
------------------------ 
| .... | a | data1 | 
| .... | data2 | a  | 
------------------------ 

Gibt es irgendwelche Vorschläge mit polymorphen Schema arbeiten

Antwort

0

Gibt es irgendwelche Vorschläge Arbeiten mit polymorphem Schema

(Meinung Alarm) Der beste Vorschlag ist nicht, einen an erster Stelle zu haben. Es ist unmöglich, auf lange Sicht extrem fehleranfällig zu bleiben und erfordert eine komplexe Kompensation auf der Client-Seite.

Was ist, wenn Sie ein zu tun haben:

  • Sie versuchen, Daten verwenden, können Aggregation Framework mit $project zu sanieren, bevor er geholt Spark ist. Siehe Aggregation section der Dokumentation zum Beispiel.
  • Versuchen Sie nicht, es mit strukturiertem Format zu koppeln. Verwenden Sie RDDs, rufen Sie Daten als einfache Python dict und behandeln Sie das Problem manuell.
+0

Aggregation ist eine gute Idee. Ich dachte, in 'PySpark' mit' pyMongo' zu verwenden und 'rdd' mit map-table process zu erstellen – YeKo