从mongodb读取火花

从mongodb读取火花,mongodb,apache-spark,apache-spark-sql,Mongodb,Apache Spark,Apache Spark Sql,通过spark读取mongodb有更好的选择吗?目前我使用 我理解正确吗 val mongoRDD = sql.fromMongoDB(mongoConfigurationData) mongoRDD.registerTempTable("myTable") 因为最初扫描了大量数据,所以速度很慢? 怎么会这样 sql.sql("CREATE TEMPORARY TABLE myTable USING mongoConfigurationData)") seems to be slowe

通过spark读取mongodb有更好的选择吗?目前我使用

我理解正确吗

val mongoRDD = sql.fromMongoDB(mongoConfigurationData)
    mongoRDD.registerTempTable("myTable")
因为最初扫描了大量数据,所以速度很慢? 怎么会这样

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

您可以使用 及

导入两个类SparkConf和SparkContext

import org.apache.spark.sql.{DataFrame, SQLContext}
只需用mongodb url替换url即可。 dbtable,其中包含要为其创建dataframe的表的名称。 替换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驱动程序的新Spark上下文创建新的SQLContext

val sqlContext = new SQLContext(sc)
从表的SQLContext创建dataframereader

val dataFrameReader = sqlContext.read.format("jdbc").options(options)
调用load方法为您的表创建DataFrame

val tableDataFrame = dataFrameReader.load()
调用show()方法以显示表内容

tableDataFrame.show()
参考:

谢谢


Charles。

您可以使用 及

导入两个类SparkConf和SparkContext

import org.apache.spark.sql.{DataFrame, SQLContext}
只需用mongodb url替换url即可。 dbtable,其中包含要为其创建dataframe的表的名称。 替换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驱动程序的新Spark上下文创建新的SQLContext

val sqlContext = new SQLContext(sc)
从表的SQLContext创建dataframereader

val dataFrameReader = sqlContext.read.format("jdbc").options(options)
调用load方法为您的表创建DataFrame

val tableDataFrame = dataFrameReader.load()
调用show()方法以显示表内容

tableDataFrame.show()
参考:

谢谢


Charles。

您好,当我尝试以这种方式连接mongodb时,出现了一个错误,身份验证失败。在我添加选项“dbname”->“admin”之后,我可以访问mongodb。但它带来了新的错误:采样时出错:system.profile。。。。。所以我在dataFrameReader中什么也得不到。有什么建议吗?嗨,当我尝试以这种方式连接mongodb时,我收到一个错误,身份验证失败。在我添加选项“dbname”->“admin”之后,我可以访问mongodb。但它带来了新的错误:采样时出错:system.profile。。。。。所以我在dataFrameReader中什么也得不到。有什么建议吗?