¿Cómo agregar múltiples columnas en PySpark Dataframes?

En este artículo, veremos diferentes formas de agregar columnas múltiples en marcos de datos de PySpark. 

Vamos a crear un marco de datos de muestra para la demostración:

Conjunto de datos utilizado: Cricket_data_set_odi

Python3

# import pandas to read json file
import pandas as pd
  
# importing module
import pyspark
  
# importing sparksession from pyspark.sql
# module
from pyspark.sql import SparkSession
  
# creating sparksession and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
  
  
# create Dataframe
df=spark.read.option(
    "header",True).csv("Cricket_data_set_odi.csv")
  
# Display Schema
df.printSchema()
  
# Show Dataframe
df.show()

Producción:

Método 1: Usando withColumn()

withColumn() se usa para agregar una columna nueva o actualizar una columna existente en DataFrame

Sintaxis: df.withColumn(colName, col)

Devuelve: una nueva :class:`DataFrame` agregando una columna o reemplazando la columna existente que tiene el mismo nombre. 

Código:

Python3

df.withColumn(
    'Avg_runs', df.Runs / df.Matches).withColumn(
    'wkt+10', df.Wickets+10).show()

Producción:

Método 2 : Usar select()

También puede agregar varias columnas usando seleccionar.

Sintaxis: df.select(*columnas)

Código:

Python3

# Using select() to Add Multiple Column
df.select('*', (df.Runs / df.Matches).alias('Avg_runs'),
          (df.Wickets+10).alias('wkt+10')).show()

Producción :

Método 3: agregar una columna múltiple constante a DataFrame usando withColumn() y select()

Vamos a crear una nueva columna con valor constante usando la función SQL lit(), en el siguiente código. La función lit() presente en Pyspark se usa para agregar una nueva columna en un marco de datos de Pyspark asignando un valor constante o literal.

Python3

from pyspark.sql.functions import col, lit
  
  
df.select('*',lit("Cricket").alias("Sport")).
withColumn("Fitness",lit(("Good"))).show()

Producción:

Publicación traducida automáticamente

Artículo escrito por kg_code y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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