Menu Docs
Página inicial do Docs
/
Conector do Spark
/

Gravar no MongoDB no modo de lote

Para escrever dados no MongoDB, chame o método write() em seu objeto Dataset<Row> . Este método retorna um objeto DataFrameWriter , que você pode utilizar para especificar o formato e outras definições de configuração para sua operação de gravação em lote .

Você deve especificar as seguintes definições de configuração para gravar no MongoDB:

Contexto
Descrição
dataFrame.write.format()
Especifica o formato da fonte de dados de saída subjacente. Use mongodb para escrever no MongoDB.
dataFrame.write.option()

Use o método option para definir as configurações de gravação em lote , inclusive astring de conexão do MongoDB deployment, o banco de banco de dados e a collection do MongoDB e o diretório de destino.

Para obter uma lista de opções de configuração de gravação em lote , consulte o guia Opções de configuração de gravação em lote .

O exemplo seguinte cria um DataFrame a partir de um arquivo json e o salva na coleção people.contacts no MongoDB:

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

Dica

Tipo de DataFrame

DataFrame não existe como uma classe na API Java . Utilize o Dataset<Row> para referenciar um DataFrame.

Para escrever dados no MongoDB, chame a função write em seu objeto DataFrame . Esta função retorna um objeto DataFrameWriter , que você pode utilizar para especificar o formato e outras definições de configuração para sua operação de gravação em lote.

Você deve especificar as seguintes definições de configuração para gravar no MongoDB:

Contexto
Descrição
dataFrame.write.format()
Especifica o formato da fonte de dados de saída subjacente. Use mongodb para escrever no MongoDB.
dataFrame.write.option()

Use o option método para definir as configurações de MongoDB gravação em lote, incluindo a implantação da connection do string, MongoDB database o de dados e a coleção do MongoDB e o diretório de destino.

Para obter uma lista de opções de configuração de gravação em lote, consulte o guia Opções de configuração de gravação em lote .

O exemplo seguinte utiliza a função createDataFrame() no objeto SparkSession para criar um objeto DataFrame a partir de uma lista de tuplas contendo nomes e idades e uma lista de nomes de coluna. O exemplo então grava este DataFrame na collection people.contacts no 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 escrever dados no MongoDB, chame o método write() em seu objeto DataFrame . Este método retorna um objeto DataFrameWriter , que você pode utilizar para especificar o formato e outras definições de configuração para sua operação de gravação em lote.

Você deve especificar as seguintes definições de configuração para gravar no MongoDB:

Contexto
Descrição
dataFrame.write.format()
Especifica o formato da fonte de dados de saída subjacente. Use mongodb para escrever no MongoDB.
dataFrame.write.option()

Use o option método para definir as configurações de MongoDB gravação em lote, incluindo a implantação da connection do string, MongoDB database o de dados e a coleção do MongoDB e o diretório de destino.

Para obter uma lista de opções de configuração de gravação em lote, consulte o guia Opções de configuração de gravação em lote .

O exemplo seguinte cria um DataFrame a partir de um arquivo json e o salva na coleção people.contacts no MongoDB:

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

Aviso

Modos de gravação

O do é compatível MongoDB Spark Connector com os seguintes modos de salvamento:

  • append

  • overwrite

Se você especificar o modo de escrita overwrite, o connector soltará a collection de destino e criará uma nova collection que usará as opções de collection padrão. Esse comportamento pode afetar collections que não usam as opções padrão, como os seguintes tipos de collection:

  • Coleções fragmentadas

  • Coleções com agrupamentos não padrão

  • Coleções de Séries Temporais

Para saber mais sobre os modos de salvamento, consulte o Guia do Spark SQL.

Importante

Se sua operação de gravação incluir um campo com um valor null , o conector gravará o nome do campo e o valor null no MongoDB. Você pode alterar esse comportamento definindo a propriedade de configuração de gravação ignoreNullValues.

Para obter mais informações sobre como definir o comportamento de gravação do conector, consulte Opções de configuração de gravação.

Para saber mais sobre os tipos usados nestes exemplos, consulte a seguinte documentação do Apache Spark API:

Voltar

Configuração