sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo consultar al conectar mongodb con apache-spark

No creo que haya una consulta "correcta":debe consultar en función de los datos que le gustaría procesar

Encontré el mismo problema.

Creo que newAPIHadoopRDD, dado MongoInputSplit.class, no tiene en cuenta la consulta al calcular las divisiones. Solo se aplica después de que se calculan las divisiones. Esto significa que no importa cuán simple sea su consulta, la cantidad de divisiones seguirá siendo la misma y será proporcional al tamaño de la colección.

newAPIHadoopRDD está utilizando StandaloneMongoSplitter. Tenga en cuenta que esta clase no utiliza la consulta para calcular los límites de división. Solo está usando el comando interno "splitVector" de mongo; de la documentación aquí - http://api.mongodb.org/internal/current/ comandos.html , también parece que no tiene en cuenta la consulta.

Aunque no tengo una buena solución. Un mejor enfoque dividiría la colección mongo solo después calculando la consulta, pero esto requiere otra implementación del divisor. Aquí hay una buena lectura sobre el problema:http:// www.ikanow.com/how-well-does-mongodb-integrate-with-hadoop/