ComenzarEmpieza gratis

Creación de columnas

En este capítulo, aprenderás a utilizar los métodos definidos por la clase DataFrame de Spark para realizar operaciones de datos comunes.

Veamos cómo realizar operaciones por columnas. En Spark puedes hacerlo utilizando el método .withColumn(), que toma dos argumentos. En primer lugar, una cadena con el nombre de tu nueva columna y, en segundo lugar, la nueva columna propiamente dicha.

La nueva columna debe ser un objeto de la clase Column. Crear uno de ellos es tan fácil como extraer una columna de tu DataFrame utilizando df.colName.

Actualizar un Spark DataFrame es algo diferente a trabajar en pandas porque el Spark DataFrame es inmutable. Esto significa que no puede modificarse y, por tanto, las columnas no pueden actualizarse in situ.

Así, todos estos métodos devuelven un nuevo DataFrame. Para sobrescribir el DataFrame original debes reasignar el DataFrame devuelto utilizando el método de la siguiente manera:

df = df.withColumn("newCol", df.oldCol + 1)

El código anterior crea un DataFrame con las mismas columnas que df más una nueva columna, newCol, donde cada entrada es igual a la entrada correspondiente de oldCol, más uno.

Para sobrescribir una columna existente, ¡solo tienes que pasar el nombre de la columna como primer argumento!

Recuerda que en tu espacio de trabajo ya hay un SparkSession llamado spark.

Este ejercicio forma parte del curso

Introducción a PySpark

Ver curso

Instrucciones de ejercicio

  • Utiliza el método spark.table() con el argumento "flights" para crear un DataFrame que contenga los valores de la tabla flights en .catalog. Guárdalo como flights.
  • Muestra la cabeza de flights utilizando flights.show(). Comprueba el resultado: la columna air_time contiene la duración del vuelo en minutos.
  • Actualiza flights para incluir una nueva columna llamada duration_hrs, que contiene la duración de cada vuelo en horas (tendrás que dividir air_time por el número de minutos de una hora).

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
Editar y ejecutar código