Gravar no MongoDB no modo de lote
Visão geral
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 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 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 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 partilhadas
Coleções com agrupamentos não padrão
Coleção 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.
Documentação da API
Para saber mais sobre os tipos usados nestes exemplos, consulte a seguinte documentação do Apache Spark API: