ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Selecciona las columnas "tailnum", "origin", y "dest" de flights pasando los nombres de las columnas como cadenas. Guárdala como selected1.
  • Selecciona las columnas "origin", "dest" y "carrier" utilizando la sintaxis df.colName y luego filtra el resultado utilizando los dos filtros que ya te hemos definido (filterA y filterB) para quedarte solo con los vuelos de SEA a PDX. Guárdala como selected2.

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(____)
Editar y ejecutar código