Saltar al contenido
Lakehouse LabLakehouse LabPreparación Databricks Data Engineer
Módulo 04 · Lección

Joins, unions y claves compuestas

Contenido abierto

Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.

Lección 3 de 5

Joins, unions y claves compuestas

El tipo de join expresa qué filas deben sobrevivir; la cardinalidad y las claves determinan corrección y coste.

Duración
17 min aprox.
Objetivo
El tipo de join expresa qué filas deben sobrevivir; la cardinalidad y las claves determinan corrección y coste.
Siguiente paso
Continuar con la siguiente lección
Ver detalles del módulo

DataFrames, transformaciones y datos complejos

Domina las operaciones que aparecen en ETL real: joins, arrays, structs, ventanas y deduplicación.

Al terminar podrás
  • Transformar columnas y filas con funciones nativas
  • Manipular arrays, maps y structs
  • Combinar y deduplicar datasets de forma determinista
Ver fuentes y revisión

Metadatos editoriales

Última revisión
21 jul 2026
Nivel
Associate
Ruta relacionada
core
Dominios blueprint
Data Transformation and Modeling · PySpark DataFrames
Estado
Revisión editorial interna
Fuentes principales
PySpark DataFrames · DataFrame transformations
Reportar un error
03
Operación

Joins, unions y claves compuestas

El tipo de join expresa qué filas deben sobrevivir; la cardinalidad y las claves determinan corrección y coste.

Mostrar prerrequisitos
Dificultad
Associate
Prerrequisitos
m03
Reportar un error en esta lección

Inner conserva coincidencias; left conserva todas las filas de la izquierda; full conserva ambos lados. Antes del join comprueba unicidad: una dimensión duplicada puede multiplicar hechos sin producir error.

union combina por posición y unionByName por nombre; ninguna elimina duplicados. Broadcast puede evitar shuffle para un lado pequeño, pero solo tras confirmar tamaño.

Modelo mental

Un join combina conjuntos según predicados, pero su corrección depende del grain y la cardinalidad antes que del tipo sintáctico. Inner conserva coincidencias; left preserva todas las filas izquierdas; semi responde existencia sin añadir columnas; anti conserva ausencias. Si una clave es única en un lado y repetida en otro, el resultado puede multiplicar filas legítimamente. Si se esperaba uno a uno, esa multiplicación es un defecto de datos o de predicado. Antes de optimizar broadcast o particiones, declara qué fila representa cada entrada, normaliza claves y estima conteos. Un join rápido que duplica ingresos es peor que uno lento: semántica y reconciliación son criterios de aceptación.

Cardinalidad

Relación de multiplicidad entre claves de dos datasets, como uno-a-uno o uno-a-muchos.

Predice el número de filas y revela duplicaciones accidentales.
Left semi join

Join que conserva filas izquierdas con al menos una coincidencia sin añadir columnas derechas.

Es la forma precisa y eficiente de filtrar por existencia.
Null-safe equality

Comparación que considera dos null equivalentes mediante una semántica explícita.

Evita asumir que la igualdad SQL ordinaria empareja valores desconocidos.
PySparkJoin con claves compuestas
enriched = orders.join(
    customers.select("tenant_id", "customer_id", "segment"),
    ["tenant_id", "customer_id"],
    "left",
)

Compara row count y claves sin correspondencia después del join.

Puntos clave

  • Elige join por semántica
  • Valida cardinalidad antes y después
  • Union no deduplica

Evita

  • Unir solo por customer_id en un sistema multitenant
  • Confundir union con eliminación de duplicados

Recuerdo activo

¿Qué puede revelar un aumento inesperado de filas?

Borrador privado · solo en este navegador
5 lecciones pendientes

Fuente revisada · vista externa

Azure Databricks Hands-on

Azure Databricks Hands-on · commit a91650b

HandsOn.dbc

Archivo importable

Este notebook se abre desde su fuente revisada

El repositorio no permite republicar su contenido dentro de Lakehouse Lab. Conservamos la misma experiencia lateral, la ruta exacta y el commit auditado, y dejamos la lectura en GitHub para respetar la autoría.

Autor
Tsuyoshi Matsuzaki
Licencia
No verificada
Formato
dbc
Abrir / descargar .dbc