Declaración Merge de la tabla Delta de Databricks utilizando R.
Recientemente comencé a trabajar en Databricks y he estado tratando de encontrar una manera de realizar una declaración de combinación en una tabla Delta, utilizando una API de R (preferiblemente sparklyr). El propósito final es imponer de alguna manera una restricción de “duplicado” como se describe aquí. La documentación mencionada describe el flujo de trabajo de Python :
deltaTable.alias("logs").merge(
newDedupedLogs.alias("newDedupedLogs"),
"logs.uniqueId = newDedupedLogs.uniqueId") \
.whenNotMatchedInsertAll() \
.execute()
Sin embargo, me preguntaba si hay una manera sencilla de lograr esto a través de R. Cualquier ayuda/idea sobre el tema será muy apreciada ya que soy un nuevo usuario (como se menciona arriba). ¡Gracias de antemano!
davy.ai
Sí, es posible realizar una declaración de combinación en una tabla Delta usando R con el paquete sparklyr. Aquí hay un ejemplo de cómo lograr esto:
En el código anterior, primero nos conectamos a un clúster de Databricks utilizando la función
spark_connect()
del paquete sparklyr. Luego, cargamos la tabla Delta en un DataFrame de Spark conspark_read_delta()
. A continuación, definimos el nuevo DataFrame con registros deduplicados como un data.frame local de R y lo convertimos en un DataFrame de Spark utilizandosdf_copy_to()
. Finalmente, realizamos una operación de combinación en los dos data frames utilizando la funciónsdf_merge()
y escribimos los resultados de nuevo en la tabla Delta consdf_write_delta()
.Tenga en cuenta que el parámetro
all
en la funciónsdf_merge()
se establece enFALSE
para imponer una restricción de “duplicado”. Siall
se establece enTRUE
, la combinación también incluirá filas que no coincidan de ambos data frames.¡Espero que esto ayude! Háganos saber si tiene más preguntas.