MongoDB से Apache Spark तक डेटा प्राप्त करने के दो तरीके हैं।
विधि 1:Casbah (मोंगडीबी जावा ड्राइवर पर परत) का उपयोग करना
val uriRemote = MongoClientURI("mongodb://RemoteURL:27017/")
val mongoClientRemote = MongoClient(uriRemote)
val dbRemote = mongoClientRemote("dbName")
val collectionRemote = dbRemote("collectionName")
val ipMongo = collectionRemote.find
val ipRDD = sc.makeRDD(ipMongo.toList)
ipRDD.saveAsTextFile("hdfs://path/to/hdfs")
यहाँ पर हम पहले डेटा प्राप्त करने और फिर उसे HDFS में सहेजने के लिए Scala और Casbah का उपयोग कर रहे हैं।
विधि 2:हमारे उपयोग में स्पार्क वर्कर
कोड का बेहतर संस्करण:कम समय में डेटा प्राप्त करने के लिए स्पार्क वर्कर और मल्टीपल कोर का उपयोग करना।
val config = new Configuration()
config.set("mongo.job.input.format","com.mongodb.hadoop.MongoInputFormat")
config.set("mongo.input.uri", "mongodb://RemoteURL:27017/dbName.collectionName")
val keyClassName = classOf[Object]
val valueClassName = classOf[BSONObject]
val inputFormatClassName = classOf[com.mongodb.hadoop.MongoInputFormat]
val ipRDD = sc.newAPIHadoopRDD(config,inputFormatClassName,keyClassName,valueClassName)
ipRDD.saveAsTextFile("hdfs://path/to/hdfs")