Docs Menu
Docs Home
/ /

Guardar en MongoDB en moda agrupar

Para escribir datos en MongoDB, llame al método write() Método en el objeto Dataset<Row>. Este método devuelve un objeto DataFrameWriter, que puede usar para especificar el formato y otras opciones de configuración para la operación de escritura por lotes.

Debe especificar las siguientes configuraciones para escribir en MongoDB:

Configuración
Descripción

dataFrame.write.format()

Especifica el formato de la fuente de datos de salida subyacente. Use mongodb para escribir en MongoDB.

dataFrame.write.option()

Utilice el método option para configurar los ajustes de escritura por lotes, incluida la implementación de MongoDB cadena de conexión, base de datos y colección MongoDB y directorio de destino.

Para obtener una lista de las opciones de configuración de escritura por lotes, consulte la Guía deopciones de configuración de escritura por lotes.

El siguiente ejemplo crea un DataFrame a partir de un archivo json y lo guarda en la colección people.contacts en MongoDB:

Dataset<Row> dataFrame = spark.read().format("json")
.load("example.json");
dataFrame.write().format("mongodb")
.mode("overwrite")
.option("database", "people")
.option("collection", "contacts")
.save();

Tip

Tipo de marco de datos

DataFrame No existe como clase en la API de Java. Use Dataset<Row> para hacer referencia a un DataFrame.

Para escribir datos en MongoDB, llame a la función write en su objeto DataFrame. Esta función devuelve un objeto DataFrameWriter, que puede usar para especificar el formato y otras opciones de configuración para su operación de escritura por lotes.

Debe especificar las siguientes configuraciones para escribir en MongoDB:

Configuración
Descripción

dataFrame.write.format()

Especifica el formato de la fuente de datos de salida subyacente. Use mongodb para escribir en MongoDB.

dataFrame.write.option()

Utilice el option método para configurar los ajustes de escritura por lotes, incluida la cadena de conexión de implementación de MongoDB, la base de datos y la colección de MongoDB y el directorio de destino.

Para obtener una lista de las opciones de configuración de escritura por lotes, consulte la guía Opciones de configuración de escritura por lotes.

El siguiente ejemplo utiliza la función createDataFrame() en el objeto SparkSession para crear un objeto DataFrame a partir de una lista de tuplas que contienen nombres y edades, y una lista de nombres de columnas. A continuación, el ejemplo escribe este objeto DataFrame en la colección people.contacts de MongoDB.

dataFrame = spark.createDataFrame([("Bilbo Baggins", 50), ("Gandalf", 1000), ("Thorin", 195), ("Balin", 178), ("Kili", 77),
("Dwalin", 169), ("Oin", 167), ("Gloin", 158), ("Fili", 82), ("Bombur", None)], ["name", "age"])
dataFrame.write.format("mongodb")
.mode("append")
.option("database", "people")
.option("collection", "contacts")
.save()

Para escribir datos en MongoDB, llame al método write() en su objeto DataFrame. Este método devuelve un objeto DataFrameWriter, que puede usar para especificar el formato y otras opciones de configuración para su operación de escritura por lotes.

Debe especificar las siguientes configuraciones para escribir en MongoDB:

Configuración
Descripción

dataFrame.write.format()

Especifica el formato de la fuente de datos de salida subyacente. Use mongodb para escribir en MongoDB.

dataFrame.write.option()

Utilice el option método para configurar los ajustes de escritura por lotes, incluida la cadena de conexión de implementación de MongoDB, la base de datos y la colección de MongoDB y el directorio de destino.

Para obtener una lista de las opciones de configuración de escritura por lotes, consulte la guía Opciones de configuración de escritura por lotes.

El siguiente ejemplo crea un DataFrame a partir de un archivo json y lo guarda en la colección people.contacts en MongoDB:

val dataFrame = spark.read.format("json")
.load("example.json")
dataFrame.write.format("mongodb")
.mode("overwrite")
.option("database", "people")
.option("collection", "contacts")
.save()

Advertencia

Modos de guardado

El conector MongoDB Spark admite los siguientes modos de guardado:

  • append

  • overwrite

Si especificas el modo de guardar overwrite, el conector descarta la colección de destino y crea una nueva colección que utiliza las opciones de colección por defecto. Este comportamiento puede afectar a las colecciones que no utilizan las opciones por defecto, como los siguientes tipos de colecciones:

  • Colecciones fragmentadas

  • Colecciones con intercalaciones no predeterminadas

  • Colecciones de series temporales

Para obtener más información sobre los modos de guardado, consulte la Guía de Spark SQL.

Importante

Si su operación de escritura incluye un campo con un valor null, el conector escribe el nombre del campo y el valor null en MongoDB. Puede cambiar este comportamiento configurando la propiedad de configuración de escritura ignoreNullValues.

Para obtener más información sobre cómo configurar el comportamiento de escritura del conector, consulte Opciones de configuración de escritura.

Para obtener más información sobre los tipos utilizados en estos ejemplos, consulte la siguiente documentación de la API de Apache Spark:

Volver

Configuración