Ich glaube, ich habe das Problem gefunden:mongodb-hadoop hat einen „statischen“ Modifikator für seine BSON-Encoder/Decoder-Instanzen in core/src/main/java/com/mongodb/hadoop/input/MongoInputSplit.java. Wenn Spark im Multithread-Modus läuft, versuchen alle Threads und deserialisieren mit demselben Encoder/Decoder-Instanzen, was voraussichtlich zu schlechten Ergebnissen führt.
Patch auf meinem Github hier (habe eine Pull-Anfrage an Upstream gesendet)
Ich kann jetzt eine 8-Kern-Multithread-Spark->mongo collection count() von Python ausführen!