2016-04-14 28 views
0

'dan okunmuştur kıvılcım ile mongodb okumak için daha iyi bir seçenek var mı? Şu anda ben https://github.com/Stratio/Spark-MongoDBkıvılcımı mongodb

ben çok fazla veri başlangıçta taranır çünkü

val mongoRDD = sql.fromMongoDB(mongoConfigurationData) 
    mongoRDD.registerTempTable("myTable") 

çok yavaş doğru olduğunu anladınız mı kullanıyor? o

sql.sql("CREATE TEMPORARY TABLE myTable USING mongoConfigurationData)") seems to be slower? 

cevap

3

Sen SparkConf ve SparkContext

import org.apache.spark.sql.{DataFrame, SQLContext} 

Basitçe MongoDB ile url yerine unity JDBC ve MongoDB Java Driver

import mongodb.jdbc.MongoDriver 

İthalat iki sınıfları kullanarak MongoDB gelen okuyabileceği olabilir nasıl url. Veri çerçevesini oluşturmak istediğiniz tablonun ismi ile dbtable. db2 veritabanı sunucunuzun kullanıcı ve şifresini değiştirin.

val url = "jdbc:mongo://ds045252.mlab.com:45252/samplemongodb" 
val dbtable = "Photos" 
val user = "charles2588" 
val password = "*****" 
val options = scala.collection.Map("url" -> url,"driver" -> "mongodb.jdbc.MongoDriver","dbtable" ->dbtable,"user"->user,"password"->password) 

Şimdi DB2 sürücüsü

val sqlContext = new SQLContext(sc) 

oluşturmak için tablo için

val dataFrameReader = sqlContext.read.format("jdbc").options(options) 

Çağrısı yük yöntemi SqlContext bir dataframereader oluşturun yüklendikten Yeni Spark Bağlam yeni SqlContext oluşturmak Masanız için DataFrame.

val tableDataFrame = dataFrameReader.load() 

Çağrı gösterisi() metodu tablo içeriğini

gösterilecek
tableDataFrame.show() 

Ref: http://bigdataauthority.blogspot.com/2016/03/connecting-to-mongodb-from-ibm-bluemix.html

sayesinde

Charles.

+0

Merhaba, bu şekilde mongodb'a bağlanmaya çalıştığımda Auth başarısız oldu. "dbname" -> "admin" seçeneğini ekledikten sonra, mongodb'a erişebilirim. Ama yeni hata geliyor: örnekleme toplama sırasında Hata: system.profile ..... Böylece dataFrameReader'da hiçbir şey elde edemiyorum. Herhangi bir öneri? –