Overview
Para guardar datos en MongoDB, llama a la write() método en tu objeto Dataset<Row>. Este método devuelve un DataFrameWriter objeto, que puede utilizar para especificar el formato y otras configuraciones para su operación de guardar de agrupar.
Debes especificar la siguiente configuración para guardar en MongoDB:
Configuración | Descripción |
|---|---|
| Especifica el formato de la fuente de datos de salida subyacente. Use |
| Utiliza el método Para obtener una lista de las opciones de configuración de escritura por lotes, consulte el Guía de 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:
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 DataFrame
DataFrame no existe como una clase en la API de Java. Use Dataset<Row> para referenciar un DataFrame.
Para guardar datos en MongoDB, llama la función write en tu objeto DataFrame. Esta función devuelve un objeto DataFrameWriter, que puedes usar para especificar la configuración del formato para tu operación de escritura por lotes.
Debes especificar la siguiente configuración para guardar 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 guardar por agrupar, consulta la guía Opciones de configuración de guardar por agrupar. |
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. El ejemplo luego escribe este DataFrame en la colección people.contacts en 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 guardar datos en MongoDB, llama al método write() en tu objeto DataFrame. Este método devuelve un objeto DataFrameWriter, que puedes usar para especificar el formato y otros ajustes de configuración de tu operación de escritura por lotes.
Debes especificar la siguiente configuración para guardar 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 guardar por agrupar, consulta la guía Opciones de configuración de guardar por agrupar. |
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 Connector 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 particionadas
Colecciones con intercalaciones no predeterminadas
colección de series de tiempo
Para obtener más información sobre los modos de guardado, consulte la Guía de Spark SQL.
Importante
Si tu operación de escritura incluye un campo con un valor null, el sistema conectord escritor el nombre del campo y el valor null en MongoDB. Puede modificar 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, consulta las Opciones de configuración de escritura.
Documentación de la API
Para obtener más información sobre los tipos utilizados en estos ejemplos, consulta la siguiente documentación de la API de Apache Spark: