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.
- Transformar columnas y filas con funciones nativas
- Manipular arrays, maps y structs
- Combinar y deduplicar datasets de forma determinista
03OperaciónJoins, unions y claves compuestas
El tipo de join expresa qué filas deben sobrevivir; la cardinalidad y las claves determinan corrección y coste.
+
Joins, unions y claves compuestas
El tipo de join expresa qué filas deben sobrevivir; la cardinalidad y las claves determinan corrección y coste.
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.
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.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.Comparación que considera dos null equivalentes mediante una semántica explícita.
Evita asumir que la igualdad SQL ordinaria empareja valores desconocidos.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