Acho que encontrei o problema:mongodb-hadoop tem um modificador "estático" em suas instâncias de codificador/decodificador BSON em core/src/main/java/com/mongodb/hadoop/input/MongoInputSplit.java. Quando o Spark é executado no modo multithread, todos os threads tentam desserializar usando o mesmo instâncias de codificador/decodificador, que previsivelmente tem resultados ruins.
Patch no meu github aqui (enviaram uma solicitação de pull upstream)
Agora posso executar um Spark->mongo collection count() multithread de 8 núcleos do Python!