2016-04-14 12 views
0

spong経由でmongodbから読み込む方が良いでしょうか?現在、私は多くのデータが最初にスキャンされているのでspark read mongodb

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

がとても遅いことを正しく理解していますhttps://github.com/Stratio/Spark-MongoDB

を使うのか? それは

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

答えて

3

あなたはSparkConfとSparkContextは

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

単にあなたのMongoDBとURLを交換unity JDBCMongoDB Java Driver

import mongodb.jdbc.MongoDriver 

インポート2つのクラスを使用してのMongoDBから読み取ることができるということができますかurl。 データフレームを作成するテーブルの名前を指定したdbtable。 db2データベース・サーバーのユーザーとパスワードを置き換えます。

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) 

は今DB2ドライバが

val sqlContext = new SQLContext(sc) 

をロードした新しいスパークコンテキストから新しいSQLContextを作成作成するために、loadメソッドを呼び出して、あなたのテーブルのための

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

をごSQLContextからdataframereaderを作成します。テーブルのDataFrame。

val tableDataFrame = dataFrameReader.load() 

コールshow()メソッドは、テーブルの内容

を表示するには
tableDataFrame.show() 

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

おかげで、

チャールズ。

+0

こんにちは、この方法でmongodbに接続しようとするとAuthが失敗します。オプション "dbname" - > "admin"を追加すると、mongodbにアクセスできます。しかし、それは新しいエラーになります: サンプリングの収集中にエラーが発生しました:system.profile .....私は何もdataFrameReaderに取得しないようにします。なにか提案を? –