sql >> Databasteknik >  >> NoSQL >> MongoDB

Läser enorm MongoDB-samling från Spark med hjälp av Worker

Det finns två sätt att få data från MongoDB till Apache Spark.

Metod 1:Använda 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")

Här borta använder vi Scala och Casbah för att först hämta data och sedan spara dem till HDFS.

Metod 2:Spark Worker vid vår användning

Bättre version av koden:Använder Spark-arbetare och flera kärnor för att använda för att få data 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. MongoDB $isoDayOfWeek

  2. mongoose-uppdatering:$inc fungerar inte i upsert

  3. Synkronisera data från mongoDB till elasticsearch med Logstash

  4. Mongo db-uppdateringsfråga fungerar inte i inbäddade dokument i azure cosmos db