Selecionar y filtrar con SQL Spark en Scala

Ejemplo: Contar datosscala logo

Contar las personas que sean mayores de 30 años

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
        |count(*) as mayores_de_30
        |from personas 
        |where edad > 30
    """.stripMargin)
    .show
+-----------------+
|  mayores_de_30  |
+-----------------+
|                1|
+-----------------+

Ejemplo: Filtrar por texto

Encontrar las personas que su apellido empieze por “Gar”

spark
    .sql(
      """select
        | nombre, apellido
        |from personas 
        |where apellido like 'Gar%'
    """.stripMargin)
    .show
+------+--------+
|nombre|apellido|
+------+--------+
|  Paco|  Garcia|
|  Juan|  Garcia|
|  Sara|  Garcia|
+------+--------+

Ejemplo: Multiples condiciones

Encontrar las personas que cobrando más de 25.000 euros y se llamen Juan o Sara

spark
    .sql(
      """select
        | nombre, apellido
        | from personas 
        | where salario > 25000
        and (nombre == 'Juan' or nombre == 'Sara')
    """.stripMargin)
    .show
+------+--------+
|nombre|apellido|
+------+--------+
|  Juan|  Garcia|
|  Sara|  Garcia|
+------+--------+

Ejemplo: Elementos distintos

Encontrar todos los apellidos distintos de la tabla

spark
    .sql("""select
        | distinct apellido
        | from personas
    """.stripMargin)
    .show
+--------+
|apellido|
+--------+
|  Martin|
|  Garcia|
+--------+

Ejemplo: Elementos de un conjunto

Encontrar todas las personas que su nombre es Paco o Juan

spark
    .sql(
      """select 
        | nombre, apellido, edad
        | from personas
        | where nombre in ('Paco','Juan')
    """.stripMargin)
    .show
+------+--------+----+
|nombre|apellido|edad|
+------+--------+----+
|  Paco|  Garcia|  24|
|  Juan|  Garcia|  26|
+------+--------+----+

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

Autor: Diego Calvo