MongoDB工具 >MongoDB Spark连接器 > 配置选项
MongoDB Spark连接器提供了各种配置选项。
SparkConf
您可以通过SparkConf
使用--conf
设置或$SPARK_HOME/conf/spark-default.conf
文件来指定这些选项,MongoDB Spark Connector将使用中的设置SparkConf
作为默认设置。
重要
通过设置配置时SparkConf
,必须在配置选项前加上前缀。有关特定前缀,请参阅配置部分。
ReadConfig
和WriteConfig
MongoDB连接器API中的各种方法都接受可选的
ReadConfig
或WriteConfig对象。
ReadConfig
和WriteConfig
设置会覆盖中的任何相应设置SparkConf
。
有关示例,请参阅使用ReadConfig和使用WriteConfig。有关更多详细信息,请参阅这些方法的来源。
在Spark API中,某些方法(例如DataFrameReader
和
DataFrameWriter
)接受形式为的选项。Map[String,
String]
您可以通过方法将自定义ReadConfig
或WriteConfig
设置转换为。Map
asOptions()
连接器提供了MongoClients
只能通过“系统属性”对其进行配置的缓存。请参阅缓存配置。
可以使用以下选项从MongoDB中读取:
注意
如果通过设置这些连接器输入配置SparkConf
,请在这些设置之前加上前缀spark.mongodb.input.
。
物业名称 | 描述 |
---|---|
uri |
需要。形式的连接字符串,
其他剩余的输入选项可以添加到 |
database |
需要。从中读取数据的数据库名称。 |
collection |
需要。从中读取数据的集合名称。 |
batchSize |
游标中使用的内部批处理的大小。 |
localThreshold |
从多个MongoDB服务器中选择服务器的阈值(以毫秒为单位)。 默认值:15毫秒 |
readPreference.name |
要使用的读取首选项。 默认值:主要 |
readPreference.tagSets |
要使用的ReadPreference TagSet。 |
readConcern.level |
要使用的“ 读取关注点”级别。 |
sampleSize |
推断架构时要使用的样本大小。 默认值:1000 |
samplePoolSize |
样本池大小,用于限制从中采样数据的结果。 默认值:10000 |
partitioner |
用于对数据进行分区的分区程序的类名。连接器提供以下分区程序:
除了提供的分区程序,您还可以指定自定义分区程序实现。对于特征的自定义实现 要为各种分区程序配置选项,请参阅“ 分区程序配置”。 默认值:MongoDefaultPartitioner |
registerSQLHelperFunctions |
注册不支持的MongoDB数据类型的帮助程序方法。 默认值: |
sql.inferschema.mapTypes.enabled |
默认值: |
sql.inferschema.mapTypes.minimumKeys |
必须将最小键数a 默认值: |
hint |
提示文档的JSON表示形式。 |
collation |
排序规则的JSON表示形式。查询MongoDB时使用。 |
MongoSamplePartitioner
组态注意
如果通过设置这些连接器配置SparkConf
,请在这些配置设置前加上前缀
spark.mongodb.input.partitionerOptions.
。
物业名称 | 描述 |
---|---|
partitionKey |
拆分收集数据所依据的字段。该字段应建立索引并包含唯一值。 默认值: |
partitionSizeMB |
每个分区的大小(以MB为单位) 默认值:64 MB |
samplesPerPartition |
每个分区要采用的样本文档数。 默认值:10 |
MongoShardedPartitioner
组态注意
如果通过设置这些连接器配置SparkConf
,请在这些配置设置前加上前缀
spark.mongodb.input.partitionerOptions.
。
物业名称 | 描述 |
---|---|
shardkey |
拆分收集数据所依据的字段。该字段应建立索引并包含唯一值。 默认值: |
MongoSplitVectorPartitioner
组态注意
如果通过设置这些连接器配置SparkConf
,请在这些配置设置前加上前缀
spark.mongodb.input.partitionerOptions.
。
物业名称 | 描述 |
---|---|
partitionKey |
拆分收集数据所依据的字段。该字段应建立索引并包含唯一值。 默认值: |
partitionSizeMB |
每个分区的大小(以MB为单位) 默认值:64 MB |
MongoPaginateByCountPartitioner
组态注意
如果通过设置这些连接器配置SparkConf
,请在这些配置设置前加上前缀
spark.mongodb.input.partitionerOptions.
。
物业名称 | 描述 |
---|---|
partitionKey |
拆分收集数据所依据的字段。该字段应建立索引并包含唯一值。 默认值: |
numberOfPartitions |
要创建的分区数。 默认值:64 |
MongoPaginateBySizePartitioner
组态注意
如果通过设置这些连接器配置SparkConf
,请在这些配置设置前加上前缀
spark.mongodb.input.partitionerOptions.
。
物业名称 | 描述 |
---|---|
partitionKey |
拆分收集数据所依据的字段。该字段应建立索引并包含唯一值。 默认值: |
partitionSizeMB |
每个分区的大小(以MB为单位) 默认值:64 MB |
uri
配置设定您可以通过输入设置来设置所有输入配置uri
。
例如,考虑以下示例,该示例通过设置输入
uri
设置SparkConf
:
注意
如果通过配置MongoDB Spark输入设置SparkConf
,请在设置前缀spark.mongodb.input.
。
spark.mongodb.input.uri=mongodb://127.0.0.1/databaseName.collectionName?readPreference=primaryPreferred
该配置对应于以下单独的配置设置:
spark.mongodb.input.uri=mongodb://127.0.0.1/
spark.mongodb.input.database=databaseName
spark.mongodb.input.collection=collectionName
spark.mongodb.input.readPreference.name=primaryPreferred
如果您在uri
和单独的配置中都指定了设置,则该uri
设置会覆盖单独的设置。例如,给定以下配置,该连接的输入数据库为foobar
:
spark.mongodb.input.uri=mongodb://127.0.0.1/foobar
spark.mongodb.input.database=bar
提供了以下用于写入MongoDB的选项:
注意
如果通过设置这些连接器输出配置SparkConf
,请在这些设置前面加上:spark.mongodb.output.
。
物业名称 | 描述 |
---|---|
uri |
需要。形式的连接字符串, 注意 其他剩余选项可能会附加到 |
database |
需要。要写入数据的数据库名称。 |
collection |
需要。要向其写入数据的集合名称 |
extendedBsonTypes |
将数据写入MongoDB时启用扩展的BSON类型。 默认值: |
localThreshold |
从多个MongoDB服务器中选择服务器的阈值(毫秒)。 默认值:15毫秒 |
replaceDocument |
保存包含 默认值:true |
maxBatchSize |
保存数据时批量操作的最大批处理大小。 默认值:512 |
writeConcern.w |
写入关注点w值。 默认 |
writeConcern.journal |
写关注日志值。 |
writeConcern.wTimeoutMS |
写关注wTimeout值。 |
shardKey |
拆分收集数据所依据的字段。该字段应建立索引并包含唯一值。 默认值: |
forceInsert |
即使数据集包含,也强制保存使用插入 默认值: |
ordered |
设置批量操作的订购属性。 默认值: |
uri
配置设定您可以通过输出设置所有输出配置uri
。
例如,考虑以下示例,该示例通过设置输入
uri
设置SparkConf
:
注意
如果通过配置配置输出设置SparkConf
,请在设置前缀spark.mongodb.output.
。
spark.mongodb.output.uri=mongodb://127.0.0.1/test.myCollection
该配置对应于以下单独的配置设置:
spark.mongodb.output.uri=mongodb://127.0.0.1/
spark.mongodb.output.database=test
spark.mongodb.output.collection=myCollection
如果您在uri
和单独的配置中都指定了设置,则该uri
设置会覆盖单独的设置。例如,给定以下配置,该连接的输出数据库为foobar
:
spark.mongodb.output.uri=mongodb://127.0.0.1/foobar
spark.mongodb.output.database=bar
MongoConnector包含用于MongoClients的缓存,因此工作人员可以跨线程共享MongoClient。
重要
由于在Spark配置可用之前已设置了缓存,因此只能通过“系统属性”配置缓存。
系统属性名称 | 描述 |
---|---|
mongodb.keep_alive_ms |
保持 默认值:5000 |