Agregar nueva columna al DataFrame de PySpark

Agregar nueva columna al DataFrame de PySpark

En este artículo vamos a aprender cómo agregar una nueva columna a un DataFrame de PySpark. PySpark es el paquete de Python para Apache Spark, un framework de computación distribuida. Los DataFrames de PySpark son similares a los DataFrames de Pandas y los RDDs de PySpark son similares a los RDDs de Spark. Los DataFrames de PySpark son objetos que tienen columnas con nombres y tipos de datos. Es posible agregar una nueva columna al DataFrame utilizando una columna existente o utilizando una función.

📋 Aquí podrás encontrar✍
  1. Crear un DataFrame de PySpark
  2. Agregar nueva columna utilizando una columna existente
  3. Agregar nueva columna utilizando una función
  4. Ejemplos de código
  5. Conclusión
  6. Preguntas frecuentes
    1. ¿Puedo agregar una columna de tipo complejo?
    2. ¿Puedo agregar varias nuevas columnas al mismo tiempo?
    3. ¿Cómo elimino una columna en PySpark?
    4. ¿Cómo cambio el nombre de una columna en PySpark?

Crear un DataFrame de PySpark

Antes de agregar una columna al DataFrame, necesitamos tener un DataFrame sobre el cual trabajar. Podemos crear un DataFrame de PySpark utilizando varias fuentes como archivos, RDDs o listas de Python. Aquí hay un ejemplo de cómo crear un DataFrame de PySpark utilizando una lista de Python:

from pyspark.sql import SparkSession
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
spark = SparkSession.builder.appName('NewColumnDF').getOrCreate()
data = [('Alice', 1), ('Bob', 2), ('Charlie', 3), ('David', 4), ('Eva', 5)]
schema = StructType([StructField('Name', StringType(), True),StructField('ID', IntegerType(), True)])
df = spark.createDataFrame(data, schema=schema)

Este código crea un DataFrame con dos columnas: 'Name' de tipo StringType y 'ID' de tipo IntegerType.

Agregar nueva columna utilizando una columna existente

Es posible agregar una nueva columna al DataFrame utilizando una columna existente. En el siguiente ejemplo, agregamos una nueva columna 'Age' utilizando la columna existente 'ID'. La nueva columna 'Age' tendrá el valor de 'ID' multiplicado por 10.

from pyspark.sql.functions import col
df = df.withColumn('Age', col('ID')*10)

Este código crea una nueva columna 'Age' en el DataFrame 'df' y la inicializa con los valores de 'ID' multiplicados por 10. Utilizamos la función 'withColumn' de PySpark para agregar una nueva columna al DataFrame.

Agregar nueva columna utilizando una función

También es posible agregar una nueva columna utilizando una función. En el siguiente ejemplo, agregamos una nueva columna 'FirstLetter' utilizando la función 'substring' de PySpark. La nueva columna 'FirstLetter' tendrá el primer carácter de la columna 'Name'.

from pyspark.sql.functions import substring
df = df.withColumn('FirstLetter', substring(col('Name'), 1, 1))

Este código crea una nueva columna 'FirstLetter' en el DataFrame 'df' y la inicializa con el primer carácter de la columna 'Name'. Utilizamos la función 'withColumn' de PySpark para agregar una nueva columna al DataFrame.

Ejemplos de código

Aquí hay algunos ejemplos de cómo agregar una nueva columna a un DataFrame en PySpark:


# Agregar nueva columna utilizando una columna existente
from pyspark.sql.functions import col
df = df.withColumn('Age', col('ID')*10)

# Agregar nueva columna utilizando una función
from pyspark.sql.functions import substring
df = df.withColumn('FirstLetter', substring(col('Name'), 1, 1))

# Agregar varias nuevas columnas a la vez
from pyspark.sql.functions import lit
df = df.withColumn('Country', lit('USA')).withColumn('City', lit('New York'))

Conclusión

En este artículo hemos aprendido cómo agregar una nueva columna a un DataFrame de PySpark utilizando una columna existente o utilizando una función. PySpark es una herramienta poderosa para el procesamiento de datos a gran escala y agregar nuevas columnas es una tarea común en el análisis de datos.

Preguntas frecuentes

¿Puedo agregar una columna de tipo complejo?

Sí, es posible agregar columnas de tipos complejos como struct, array o map utilizando diferentes funciones de PySpark como 'struct', 'create_map' o 'array'.

¿Puedo agregar varias nuevas columnas al mismo tiempo?

Sí, es posible agregar varias nuevas columnas al mismo tiempo utilizando la función 'withColumn' varias veces en la misma línea de código, como se muestra en el ejemplo de código anterior.

¿Cómo elimino una columna en PySpark?

Es posible eliminar una columna de un DataFrame de PySpark utilizando la función 'drop'. Por ejemplo, si queremos eliminar la columna 'Age':

df = df.drop('Age')

¿Cómo cambio el nombre de una columna en PySpark?

Es posible cambiar el nombre de una columna en PySpark utilizando la función 'withColumnRenamed'. Por ejemplo, si queremos cambiar el nombre de la columna 'Age' a 'NewAge':

df = df.withColumnRenamed('Age', 'NewAge')

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir