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"
deflights
pasando los nombres de las columnas como cadenas. Guárdala comoselected1
. - Selecciona las columnas
"origin"
,"dest"
y"carrier"
utilizando la sintaxisdf.colName
y luego filtra el resultado utilizando los dos filtros que ya te hemos definido (filterA
yfilterB
) 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(____)