sql >> Database teknologi >  >> NoSQL >> MongoDB

Læser Kæmpe MongoDB-samling fra Spark med hjælp fra Worker

Der er to måder at få data fra MongoDB til Apache Spark på.

Metode 1:Brug af Casbah (Layer on MongDB Java Driver)

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")

Herovre bruger vi Scala og Casbah til at hente dataene først og derefter gemme dem til HDFS.

Metode 2:Spark Worker til vores brug

Bedre version af kode:Bruger Spark worker og multiple core til at bruge for at få dataene på kort tid.

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") 



  1. Fjern en post fra array ved hjælp af MongoDB-Java-driver

  2. MongoDB-forespørgsel med elemMatch til indlejrede array-data

  3. FindAndUpdate Sådan kontrollerer du, om dokumentet virkelig blev opdateret

  4. C# 10gen og mongo:deserialisering for medlemmer som grænseflader