При получении размера превышено исключение при сохранении Dataframe в MongoDB - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь сохранить Apache Spark Dataframe в MongoDB, используя Scala, но получаю Причина: org.bson.BsonMaximumSizeExceededException: Размер документа полезной нагрузки больше максимального значения 16777216. исключение при сохранении кадра данных в MongoDB

Фрагмент кода:

 val spark = SparkSession.builder()
      .appName("User Network Graph")
      .config("spark.mongodb.input.uri", "mongodb://mongo/socio.d3raw")
      .config("spark.mongodb.output.uri", "mongodb://mongo/socio.d3raw")
      .master("yarn").getOrCreate()

 val rawD3str=seqGraph.toDF()

 MongoSpark.write(rawD3str).option("spark.mongodb.output.uri", "mongodb://mongo/socio" 
   ).option("collection","d3raw").mode("append").save()

Трассировка стека ошибок 0 4 раза не удалась, последний сбой: потерянная задача 0.3 на этапе 332.0 (TID 11617, имел oop -node022, исполнитель 1): org.bson.BsonMaximumSizeExceededException: размер документа полезной нагрузки больше максимального значения 16777216. в com.mongodb.internal.connection.BsonWriterHelper.writePayload (BsonWriterHelper. java: 68) в com.mongb .internal.connection.CommandMessage.encodeMessageBodyWithMetadata (CommandMessage. java: 147) в com.mongodb.internal.connection.RequestMessage.encode (RequestMessage. java: 138) в com.mongodb.internal.connection.ommand.Com. (CommandMessage. java: 61) на com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive (InternalS treamConnection. java: 248) на com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive (UsageTrackingInternalConnection. java: 99) на com.mongodb.internal.connection.DefaultConnectionPool $ PooledConnection.ondAnd.RealConnection.ondAnd.RealConnection.ondAnd.Rend. 450) на com.mongodb.internal.connection.CommandProtocolImpl.execute (CommandProtocolImpl. java: 72) на com.mongodb.internal.connection.DefaultServer $ DefaultServerProtocolExecutor.execute (DefaultServer. java: 226) на com.mongodb .internal.connection.DefaultServerConnection.executeProtocol (DefaultServerConnection. java: 269) по адресу com.mongodb.internal.connection.DefaultServerConnection.command (DefaultServerConnection. java: 131) по адресу com.mongodb.operation.MixedBriteObperationE . java: 435) в com.mongodb.operation.MixedBulkWriteOperation.executeBulkWriteBatch (MixedBulkWriteOperation. java: 261) в com.mongodb.operation.MixedBulkWriteOperation.access $ 700 (MixedBulkWriteOperation. 10: 10). t com.mongodb.operation.MixedBulkWriteOperation $ 1.call (MixedBulkWriteOperation. java: 205) в com.mongodb.operation.MixedBulkWriteOperation $ 1.call (MixedBulkWriteOperation. java: 196) в com.mongodb.operation.o.

1 Ответ

1 голос
/ 05 марта 2020

MongoDB имеет ограничение размера документа 16 МБ. См. https://docs.mongodb.com/manual/core/document/#document -size-limit для получения более подробной информации. Похоже, что вы пытаетесь сохранить больше 16 МБ.

...