Docs 菜单
Docs 主页
/
Spark Connector
/

以批处理模式写入 MongoDB

要将数据写入MongoDB,请对Dataset<Row>对象调用 write()方法。 此方法会返回一个DataFrameWriter对象,您可以使用该对象指定批处理写入操作的格式和其他配置设置。

您必须指定以下配置设置才能写入MongoDB:

设置
说明
dataFrame.write.format()
指定根本的输出数据源的格式。 使用mongodb写入MongoDB。
dataFrame.write.option()

使用 option 方法配置批处理写入设置,包括MongoDB部署连接string 、 MongoDB数据库和集合以及目标目录。

有关批处理写入配置选项的列表,请参阅批量写入配置选项指南。

以下示例从json文件创建 DataFrame,并将其保存到 MongoDB 中的people.contacts集合:

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

提示

DataFrame 类型

DataFrame 在Java API中不作为类存在。 使用Dataset<Row>引用 DataFrame。

要将数据写入 MongoDB,请对DataFrame对象调用write函数。 此函数返回一个DataFrameWriter对象,您可以使用该对象指定批处理写入操作的格式和其他配置设置。

您必须指定以下配置设置才能写入MongoDB:

设置
说明
dataFrame.write.format()
指定根本的输出数据源的格式。 使用mongodb写入MongoDB。
dataFrame.write.option()

使用 option 方法配置批量写入设置,包括MongoDB部署连接string 、 MongoDB database和集合以及目标目录。

有关批量写入配置选项的列表,请参阅批量写入配置选项指南。

以下示例对SparkSession对象使用createDataFrame()函数,从包含姓名和年龄的元组列表以及列名称列表创建DataFrame对象。 然后,该示例将此DataFrame 写入people.contacts MongoDB 中的 collection 集合。

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()

要将数据写入 MongoDB,请对DataFrame对象调用write()方法。 此方法会返回一个DataFrameWriter对象,您可以使用该对象指定批量写入操作的格式和其他配置设置。

您必须指定以下配置设置才能写入MongoDB:

设置
说明
dataFrame.write.format()
指定根本的输出数据源的格式。 使用mongodb写入MongoDB。
dataFrame.write.option()

使用 option 方法配置批量写入设置,包括MongoDB部署连接string 、 MongoDB database和集合以及目标目录。

有关批量写入配置选项的列表,请参阅批量写入配置选项指南。

以下示例从json文件创建 DataFrame,并将其保存到 MongoDB 中的people.contacts集合:

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

警告

保存模式

MongoDB Spark Connector支持以下保存模式:

  • append

  • overwrite

如果您指定 overwrite 写入模式,则connector会删除目标集合并创建使用默认集合选项的新集合。 此行为可能会影响不使用默认选项的集合,例如以下集合类型:

  • 分片集合

  • 具有非默认排序规则的集合

  • 时间序列集合

要学习;了解有关保存模式的更多信息,请参阅 Spark SQL指南。

重要

如果写入操作包含具有null值的字段,Connector会将字段名称和null值写入MongoDB。 您可以通过设置写入配置属性ignoreNullValues来更改此行为。

有关设置连接器写入行为的更多信息,请参阅写入配置选项。

要了解有关这些示例中使用的类型的更多信息,请参阅以下 Apache Spark API 文档:

后退

批量读取配置选项