mongo spark推断大型集合的模式

时间:2017-02-14 19:16:16

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

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

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

有没有什么办法可以指定不同的分区来推断架构来加速架构推理?要么 是否还有其他方法可以从mongo推断出大型集合的模式。

1 个答案:

答案 0 :(得分:0)

  

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

通常,如果要加载大型集合并且已经知道要显式定义架构的架构。

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

case class Creature(name: String, strength: Int, type: String)

val explicitDF = MongoSpark.load[Creature](sparkSession)()
explicitDF.printSchema()