【问题标题】:Is it possible to load a database directly from HDFS into spark as a DataFrame?是否可以直接从 HDFS 将数据库作为 DataFrame 加载到 spark 中?
【发布时间】:2018-07-30 21:37:11
【问题描述】:

我的 MongoDB 和 Spark 在 Zeppelin 上运行,它们共享同一个 HDFS。 MongoDB 生成存储在同一个 HDFS 中的 .wt 数据库。

我想将该 MongoDB 生成的数据库集合从 HDFS 加载到 Spark DataFrame 中。

是否可以直接从 HDFS 将数据库作为 DataFrame 加载到 spark 中?还是我需要使用 MongoDB Spark 连接器?

【问题讨论】:

  • stackoverflow.com/questions/25203325/… 可能是一个很好的起点。
  • 什么是磁盘格式?当然,只要有足够的编码和足够的内存,这绝对是可能的。
  • DataFrame df = sqlContext.read.format("com.stratio.datasource.mongodb").options(options).load
  • @thebluephantom 您能否进一步详细说明您的代码
  • 他没有问操作系统,他问的是数据的格式。您需要确定 Spark 是否可以读取 wt 格式的文件。

标签: mongodb apache-spark hadoop hdfs


【解决方案1】:

我不建议阅读或修改内部 WiredTiger Storage Engine's *.wt 文件。首先,这些内部文件可能会在没有通知的情况下发生更改(不是面向公众的 API),对这些文件的任何意外修改都可能导致数据库处于无效/损坏状态。

您可以利用MongoDB Spark Connector 将数据从 MongoDB 加载到 Spark。此连接器是为在 MongoDB 和 Apache Spark 之间读取/写入数据而设计、开发和优化的。例如,通过数据库访问数据,客户端可以利用database indexes 来优化读取操作。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2012-07-27
    • 2022-11-03
    • 2013-04-20
    • 2016-12-05
    • 2021-06-08
    • 1970-01-01
    相关资源
    最近更新 更多