Agrupar elementos con SQL Spark en Scala

Ejemplo: Agrupar elementosscala logo

Contar el número de personas que comparten el mismo apellido.

val df = Seq(
  ("Paco","Garcia",24,24000),
  ("Juan","Garcia",26,27000),
  ("Lola","Martin",29,31000),
  ("Sara","Garcia",35,34000)
).toDF("nombre", "apellido","edad","salario")
df.createOrReplaceTempView("personas")

spark
    .sql(
     """select 
        | apellido, count(*) as num_iguales
        | from personas 
        | group by apellido
    """.stripMargin)
    .show
+--------+-----------+
|apellido|num_iguales|
+--------+-----------+
|  Martin|          1|
|  Garcia|          3|
+--------+-----------+

Ejemplo: Agrupar elementos con resticción

Contar el número de personas que comparten el mismo apellido siempre que sean más de 2

spark
    .sql(
     """select 
        | apellido, count(*) as num_iguales
        | from personas 
        | group by apellido
        | having num_iguales > 2
    """.stripMargin)
    .show

+--------+-----------+
|apellido|num_iguales|
+--------+-----------+
|  Garcia|          3|
+--------+-----------+

Otros artículos que pueden ser de interés:

Autor: Diego Calvo