Selección
La variante Spark de SQL's SELECT es el método .select(). Este método toma varios argumentos, uno por cada columna que quieras seleccionar. Estos argumentos pueden ser el nombre de la columna en forma de cadena (una por cada columna) o un objeto columna (utilizando la sintaxis df.colName ). Cuando pasas un objeto columna, puedes realizar operaciones como sumas o restas en la columna para cambiar los datos que contiene, de forma muy parecida a como se hace dentro de .withColumn().
La diferencia entre los métodos .select() y .withColumn() es que .select() devuelve solo las columnas que especifiques, mientras que .withColumn() devuelve todas las columnas del DataFrame además de la que hayas definido. A menudo es una buena idea eliminar las columnas que no necesites al principio de una operación, para no arrastrar datos adicionales mientras realizas la operación. En este caso, utilizarías .select() y no .withColumn().
Recuerda que ya hay una SparkSession llamada spark en tu espacio de trabajo, junto con el Spark DataFrame flights.
Este ejercicio forma parte del curso
Introducción a PySpark
Instrucciones del ejercicio
- Selecciona las columnas
"tailnum","origin", y"dest"deflightspasando los nombres de las columnas como cadenas. Guárdala comoselected1. - Selecciona las columnas
"origin","dest"y"carrier"utilizando la sintaxisdf.colNamey luego filtra el resultado utilizando los dos filtros que ya te hemos definido (filterAyfilterB) para quedarte solo con los vuelos de SEA a PDX. Guárdala comoselected2.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Select the first set of columns
selected1 = flights.select("____", "____", "____")
# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)
# Define first filter
filterA = flights.origin == "SEA"
# Define second filter
filterB = flights.dest == "PDX"
# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)