मुझे नहीं लगता कि कोई "सही" प्रश्न है - आपको उस डेटा के आधार पर पूछताछ करने की आवश्यकता है जिसे आप संसाधित करना चाहते हैं
मुझे एक ही समस्या का सामना करना पड़ा।
मेरा मानना है कि MongoInputSplit.class दिया गया newAPIHadoopRDD, विभाजन की गणना करते समय क्वेरी के लिए जिम्मेदार नहीं है। विभाजन की गणना के बाद ही इसे लागू किया जाता है। इसका मतलब यह है कि आपकी क्वेरी कितनी भी पतली क्यों न हो, विभाजनों की संख्या वही रहेगी, और संग्रह के आकार के समानुपाती होगी।
newAPIHadoopRDD स्टैंडअलोनमोंगोस्प्लिटर का उपयोग कर रहा है। ध्यान दें कि यह वर्ग विभाजित सीमाओं की गणना के लिए क्वेरी का उपयोग नहीं कर रहा है। यह सिर्फ मोंगो के आंतरिक "स्प्लिटवेक्टर" कमांड का उपयोग कर रहा है; यहाँ दस्तावेज़ीकरण से - http://api.mongodb.org/internal/current/ कमांड.html , ऐसा भी लगता है कि यह क्वेरी के लिए जिम्मेदार नहीं है।
हालांकि मेरे पास कोई अच्छा समाधान नहीं है। एक बेहतर तरीका मोंगो संग्रह को केवल बाद में विभाजित करेगा क्वेरी की गणना कर रहा है, लेकिन इसके लिए स्प्लिटर के एक और कार्यान्वयन की आवश्यकता है। यहाँ इस मुद्दे के बारे में कुछ अच्छा पढ़ा गया है:http:// www.ikanow.com/how-well-does-mongodb-integrate-with-hadoop/