读取mongodb集合中的文档并使用scala在本地编写它们

lstz6jyr  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(284)

我使用mongodbscala驱动程序试图访问mongodb集合,并将其中包含的文档“下载”到json文件中。集合中文档的数量是以100k为单位的,但是在python中类似的任务(下载、创建pd.dataframe并存储为csv)需要10分钟,而在sparkshell中尝试这样做则需要一个多小时。我感觉到我做错了什么,但不知道是什么。

val documents = db.getCollection("collectionName").find().toFuture()

documents on Complete {
  case Success(docs) => {
    // without partitioning tasks would become too large - resulting in most docs being written as empty
    val rdd = sc.parallelize(docs, 1000)
    val ds = spark.read.json(rdd.map(_.toJson).toDS)
    ds.write.mode("overwrite").json("/path/to/data/data.json")
  }
  case Failure(e) => println("Error")
}

有没有更好的办法?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题