ComenzarEmpieza gratis

Selección

La variante Spark de SQLSELECTes el.select()método. 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

Fundamentos de PySpark

Ver curso

Instrucciones del ejercicio

  • Selecciona las columnas "tailnum", "origin", y "dest" de flights pasando los nombres de las columnas como cadenas. Guárdalo como selected1.
  • Selecciona las columnas "origin", "dest", y"carrier" utilizando ladf.colNamesintaxis y, a continuación, filtra el resultado con los dos filtros que ya están definidos (filterA y filterB) para quedarte solo con los vuelos de SEA a PDX. Guárdalo 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