文档菜单
文档首页
/
Spark 连接器
/ /

批量写入配置选项

本页面内容

  • 概述
  • connection.uri

在批量模式下向MongoDB写入数据时,可以配置以下属性。

注意

如果使用SparkConf 设置连接器的写入配置,请将前缀 spark.mongodb.write. 添加到每个属性。

属性名称
描述
connection.uri
必需。
连接字符串配置键。

默认值: mongodb://localhost:27017/
database
必需。
数据库名配置。
collection
必需。
集合名配置。
comment
要将注释附加到写入操作。注释出现在数据库分析器的输出中。

默认值:
mongoClientFactory
MongoClientFactory 配置键。
您可以选择一个必须实现 com.mongodb.spark.sql.connector.connection.MongoClientFactory 接口的自定义实现。

默认值: com.mongodb.spark.sql.connector.connection.DefaultMongoClientFactory
convertJson
指定连接器是否解析字符串并将扩展 JSON 转换为 BSON。

此设置接受以下值
  • any:连接器将所有 JSON 值转换为 BSON。

    • "{a: 1}" 变为 {a: 1}

    • "[1, 2, 3]" 变为 [1, 2, 3]

    • "true" 变为 true

    • "01234" 变为 1234

    • "{a:b:c}" 不变。

  • objectOrArrayOnly:连接器仅将 JSON 对象和数组转换为 BSON。

    • "{a: 1}" 变为 {a: 1}

    • "[1, 2, 3]" 变为 [1, 2, 3]

    • "true" 不变。

    • "01234" 不变。

    • "{a:b:c}" 不变。

  • false:连接器将所有值保留为字符串。

默认值: false
idFieldList
通过哪些字段拆分集合数据的字段或字段列表。要指定多个字段,请使用逗号将它们分开,如下例所示
"fieldName1,fieldName2"
默认值: _id
ignoreNullValues
true 时,连接器在写入时忽略任何 null 值,包括数组中嵌套文档的 null 值。

默认值: false
maxBatchSize
指定批量操作中批量的最大操作数。

默认值: 512
operationType
指定要执行的写入操作类型。您可以将其设置为以下值之一
  • insert:插入数据。

  • replace:用新数据替换与idFieldList值匹配的现有文档。如果不存在匹配项,则upsertDocument的值表示连接器是否插入新文档。

  • update:用新数据更新与idFieldList值匹配的现有文档。如果不存在匹配项,则upsertDocument的值表示连接器是否插入新文档。


默认值: replace
ordered
指定是否执行有序的批量操作。

默认值: true
upsertDocument
true时,如果不存在匹配项,则替换和更新操作将插入数据。

对于时序集合,必须将upsertDocument设置为false

默认值: true
writeConcern.journal
指定j,这是一个写关注选项,用于请求确认数据已根据w选项中指定的标准确认在磁盘日志上。您可以选择指定truefalse

有关j值的更多信息,请参阅MongoDB服务器指南中的WriteConcern j选项
writeConcern.w
指定w,这是一个写关注选项,用于请求确认写操作已传播到指定的MongoDB节点数。有关此选项的允许值的列表,请参阅MongoDB手册中的WriteConcern

默认值: 1
writeConcern.wTimeoutMS
指定wTimeoutMS,这是一个写关注选项,当写操作超过指定的毫秒数时返回错误。如果您使用此可选设置,则必须指定一个非负整数。

有关wTimeoutMS值的更多信息,请参阅MongoDB服务器指南中的WriteConcern wtimeout选项

如果使用SparkConf要指定任何上述设置,您可以在connection.uri设置中包含它们或单独列出。

以下代码示例展示了如何将数据库、集合和convertJson设置作为connection.uri设置的一部分进行指定

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/myDB.myCollection?convertJson=any

为了使connection.uri更短,并使设置更容易阅读,您可以单独指定它们

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/
spark.mongodb.write.database=myDB
spark.mongodb.write.collection=myCollection
spark.mongodb.write.convertJson=any

重要

如果在connection.uri以及单独的一行中指定了相同的设置,则connection.uri设置将具有优先权。例如,在以下配置中,连接数据库为foobar

spark.mongodb.write.connection.uri=mongodb://127.0.0.1/foobar
spark.mongodb.write.database=bar

返回

写入

© . All rights reserved.