Ejemplo: Unir tablas
Unir tablas que tenga el identificador comun
val df_personas = Seq(
(1,"Paco","Garcia",24,24000),
(2,"Juan","Garcia",26,27000),
(3,"Lola","Martin",29,31000),
(4,"Sara","Garcia",35,34000)
).toDF("id","nombre", "apellido","edad","salario")
val df_gustos = Seq(
(1,"Rojo","Pasta"),
(2,"Amarillo","Pizza"),
(3,"Azul","Patatas"),
(5,"Rojo","Pizza"),
(6,"Negro","Pulpo")
).toDF("id", "color","comida")
df_personas
.join(df_gustos, "id")
.select("nombre", "edad", "color", "comida")
.show()
+------+----+--------+-------+ |nombre|edad| color| comida| +------+----+--------+-------+ | Paco| 24| Rojo| Pasta| | Juan| 26|Amarillo| Pizza| | Lola| 29| Azul|Patatas| +------+----+--------+-------+
Ejemplo: Unir tablas especificando los identificadores de unión
Unir tablas que tenga especificando el identificador
df_personas
.join(df_gustos, df_gustos("id") === df_personas("id"))
.show()
df_personas
.join(df_gustos, Seq("id"), "inner")
.show()+---+------+--------+----+-------+---+--------+-------+ | id|nombre|apellido|edad|salario| id| color| comida| +---+------+--------+----+-------+---+--------+-------+ | 1| Paco| Garcia| 24| 24000| 1| Rojo| Pasta| | 2| Juan| Garcia| 26| 27000| 2|Amarillo| Pizza| | 3| Lola| Martin| 29| 31000| 3| Azul|Patatas| +---+------+--------+----+-------+---+--------+-------+
Ejemplo: Unir tablas por la derecha
df_personas
.join(df_gustos, Seq("id"), "left_outer")
.show()+---+------+--------+----+-------+----+--------+-------+ | id|nombre|apellido|edad|salario| id| color| comida| +---+------+--------+----+-------+----+--------+-------+ | 1| Paco| Garcia| 24| 24000| 1| Rojo| Pasta| | 2| Juan| Garcia| 26| 27000| 2|Amarillo| Pizza| | 3| Lola| Martin| 29| 31000| 3| Azul|Patatas| | 4| Sara| Garcia| 35| 34000|null| null| null| +---+------+--------+----+-------+----+--------+-------+
Ejemplo: Unir tablas por la izquierda
df_personas
.join(df_gustos, Seq("id"), "right_outer")
.show()+----+------+--------+----+-------+---+--------+-------+ | id|nombre|apellido|edad|salario| id| color| comida| +----+------+--------+----+-------+---+--------+-------+ | 1| Paco| Garcia| 24| 24000| 1| Rojo| Pasta| | 2| Juan| Garcia| 26| 27000| 2|Amarillo| Pizza| | 3| Lola| Martin| 29| 31000| 3| Azul|Patatas| |null| null| null|null| null| 5| Rojo| Pizza| |null| null| null|null| null| 6| Negro| Pulpo| +----+------+--------+----+-------+---+--------+-------+
Ejemplo: Añadir filas a una tabla
var df_personas1 = Seq(
(1,"Paco","Garcia"),
(2,"Lucia","Garcia"),
(4,"Sara","Garcia")
).toDF("id","nombre", "apellido")
val df_personas2 = Seq(
(1,"Andres","García"),
(2,"Sara","Montes")
).toDF("id","nombre", "apellido")
df_personas1 = df_personas1.union(df_personas2)
df_personas1.show()
+---+------+--------+ | id|nombre|apellido| +---+------+--------+ | 1| Paco| Garcia| | 2| Lucia| Garcia| | 4| Sara| Garcia| | 1|Andres| García| | 2| Sara| Montes| +---+------+--------+





Primero que nada tu pagina esta excelente para uno que va iniciando en scala. Super completa.
Sobre el el ejemplo Ejemplo: «Añadir filas a una tabla», veo que es como el union all del sql en vez de añadir registros a una tabla, es mi humilde sugerencia, saludos,