mongo-hadoop bağlacı kullanarak verileri kıvılcım içine okumaya çalışıyorum. Sorun, okunan verilerle ilgili bir sınır belirlemeyi denediğimde, RDD'ye sınırların * bölme sayısını alamam.MongoHadoop Bağlayıcılar, çoğaltma sonuçları ile kullanılır
mongodbConfig.set("mongo.job.input.format","com.mongodb.hadoop.MongoInputFormat");
mongodbConfig.set("mongo.input.uri", "mongodb://localhost:27017/test.restaurants");
mongodbConfig.set("mongo.input.limit","3");
JavaPairRDD<Object, BSONObject> documents = sc.newAPIHadoopRDD(
mongodbConfig, // Configuration
MongoInputFormat.class, // InputFormat: read from a live cluster.
Object.class, // Key class
BSONObject.class // Value class
);
long count = documents.count();
System.out.println("Collection Count: " + count);
System.out.println("Partitions: " + documents.partitions().size());
//9 elements in the RDD = limit * nrOfPartions = 3 * 3
//3 partitions
Bu davranış, başkaları için tekrarlanabilirdir (her zaman sınırlanır * 3).
Sadece objectId ile sorgulamayı denediğimde benzer davranışı alıyorum (Aynı nesneye sahip bir RDD oluşturur * bölme sayısı - benim durumumda aynı belgeye sahip 3 öğe).
Ayrıca yardımcı olacaksa, mongo koleksiyonunu oluşturmak için komut dosyası da sağlayabilirim.