Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
Actualización de mongoData con MongoSpark

Del siguiente tutorial proporcionado por Mongo:

 MongoSpark.save(centenarians.write.option("collection", "hundredClub").mode("overwrite"))

¿Estoy en lo correcto al entender que lo que está sucediendo esencialmente es que Mongo primero descarta la colección y luego sobrescribe esa colección con los nuevos datos?

Mi pregunta es, entonces, ¿es posible usar el conector MongoSpark para actualizar registros en Mongo?

digamos que tengo datos que parecen

 {"_id" : ObjectId(12345), "name" : "John" , "Occupation" : "Baker"}

Entonces, lo que me gustaría hacer es fusionar el registro de la persona de otro archivo que tenga más detalles, es decir, ese archivo se parece a

 {"name" : "John", "address" : "1800 some street"}

el objetivo es actualizar el registro en Mongo, por lo que ahora el JSON parece

 {"_id" : ObjectId(12345) "name" : "John" , "address" : 1800 some street", "Occupation" : "Baker"}

Ahora aquí está la cosa, supongamos que solo queremos actualizar John , y que hay millones de otros registros que nos gustaría dejar como están.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Aquí hay algunas preguntas, intentaré desglosarlas.

Lo que está sucediendo esencialmente es que Mongo primero descarta la colección y luego sobrescribe esa colección con los nuevos datos.

Correcto, a partir de mongo-spark v2.x, si especifica el modo overwrite , MongoDB Connector for Spark primero colocará la colección y guardará el nuevo resultado en la colección. Consulte el fragmento de código fuente para obtener más información.

Mi pregunta es, entonces, ¿es posible usar el conector MongoSpark para actualizar registros en Mongo?

El parche descrito en SPARK-66 ( mongo-spark v1.1+) es, si un marco de datos contiene un campo _id , los datos se alterarán . Lo que significa que cualquier documento existente con el mismo valor _id se actualizará y se insertarán nuevos documentos sin valor _id existente en la colección.

Lo que me gustaría hacer entonces es fusionar el registro de la persona de otro archivo que tenga más detalles.

Como se mencionó anteriormente, debe conocer el valor _id de su colección. Pasos de ejemplo:

  1. Cree un marco de datos (A) leyendo de su colección Person para recuperar el valor _id de John . es decir ObjectId(12345) .
  2. Combine el valor _id de ObjectId(12345) en su marco de datos (B - del otro archivo con más información). Utilice un valor de campo único para unir los dos marcos de datos (A y B).
  3. Guarde el marco de datos combinado (C). Sin especificar el modo de overwrite .

solo queremos actualizar John , y que hay millones de otros registros que nos gustaría dejar como están.

En ese caso, antes de fusionar los dos marcos de datos, filtre los registros no deseados del marco de datos B (el del otro archivo con más detalles). Además, cuando llamas a save() , especifica el modo append .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda