Overview
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 |
|---|---|
| Especifica el formato de la fuente de datos de salida subyacente. Use |
| Utilice el método 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 |
|---|---|
| Especifica el formato de la fuente de datos de salida subyacente. Use |
| Utilice el 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 |
|---|---|
| Especifica el formato de la fuente de datos de salida subyacente. Use |
| Utilice el 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:
appendoverwrite
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.
Documentación de la API
Para obtener más información sobre los tipos utilizados en estos ejemplos, consulte la siguiente documentación de la API de Apache Spark: