【问题标题】:mongo spark infer schema for large collectionsmongo spark 大型集合的推断模式
【发布时间】:2017-02-14 19:16:15
【问题描述】:

我正在使用 mongo db spark 连接器 (mongo-spark-connector_2.10) 来读取 mongo 文档。我的问题是关于模式推断。

我看到 mongo spark 正在使用 MongoSinglePartitioner 来推断架构。因此,当我尝试对大集合(几百万个文档)进行采样以推断模式时,它非常慢。默认样本大小为 1000。mongo spark 是否有任何理由使用 SinglePartitioner 来推断架构而不是使用多个分区。我想从集合中读取所有字段,因此我从集合中抽取大量记录以推断模式。现在,对于 100 万条记录,模式推断需要 20 分钟。

有什么方法可以指定不同的分区器来推断模式以加速模式推断?或者 是否有任何其他方法可以从 mongo 推断大型集合的架构。

【问题讨论】:

    标签: mongodb apache-spark apache-spark-sql spark-dataframe


    【解决方案1】:

    是否有任何其他方法可以从 mongo 推断大集合的模式。

    一般来说,如果您有一个大型集合要加载并且已经知道架构,您会想要显式定义架构。

    您可以使用简单的案例类来定义架构,防止额外的查询并加快加载过程。 例如:

    case class Creature(name: String, strength: Int, type: String)
    
    val explicitDF = MongoSpark.load[Creature](sparkSession)()
    explicitDF.printSchema()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多