Filtrar de datos con like
Ejemplo que realiza un filtrado para seleccionar las personas que su apellido contiene «Garc» y cuya edad es menor de 30.
val df = sc.parallelize(Seq( ("Paco","Garcia",24,24000,"2018-08-06 00:00:00"), ("Juan","Garcia",26,27000,"2018-08-07 00:00:00"), ("Ana", "Martin",28,28000,"2018-08-14 00:00:00"), ("Lola","Martin",29,31000,"2018-08-18 00:00:00"), ("Sara","Garcia",35,34000,"2018-08-20 00:00:00") )).toDF("nombre","apellido","edad","salario","fecha_reg") val type_df = df.select($"nombre",$"apellido",$"edad",$"salario", unix_timestamp($"fecha_reg", "yyyy-MM-dd HH:mm:ss").cast(TimestampType).as("timestamp")) type_df.show() val filter_df = type_df.filter("apellido like 'Garc%' AND edad < 30") filter_df.show()
+------+--------+----+-------+-------------------+ |nombre|apellido|edad|salario| timestamp| +------+--------+----+-------+-------------------+ | Paco| Garcia| 24| 24000|2018-08-06 00:00:00| | Juan| Garcia| 26| 27000|2018-08-07 00:00:00| | Ana| Martin| 28| 28000|2018-08-14 00:00:00| | Lola| Martin| 29| 31000|2018-08-18 00:00:00| | Sara| Garcia| 35| 34000|2018-08-20 00:00:00| +------+--------+----+-------+-------------------+ +------+--------+----+-------+-------------------+ |nombre|apellido|edad|salario| timestamp| +------+--------+----+-------+-------------------+ | Paco| Garcia| 24| 24000|2018-08-06 00:00:00| | Juan| Garcia| 26| 27000|2018-08-07 00:00:00| +------+--------+----+-------+-------------------+
Filtrar de datos por elemento coincidente
Ejemplo que realiza un filtrado para seleccionar las personas que con el apellido «Garcia»
df.filter("apellido == 'Garcia'").show()
+------+--------+----+-------+ |nombre|apellido|edad|salario| +------+--------+----+-------+ | Paco| Garcia| 24| 24000| | Juan| Garcia| 26| 27000| | Sara| Garcia| 35| 34000| +------+--------+----+-------+
Filtrar de datos del resultado de una agrupación
Ejemplo que realiza un filtrado para seleccionar los apellidos que se repitan más de dos veces
df.groupBy("apellido").count().filter("count > 2").show()
+--------+-----+ |apellido|count| +--------+-----+ | Garcia| 3| +--------+-----+
0 comentarios