Agregar dos columnas a PySpark DataFrame existente usando withColumn

En este artículo, veremos cómo agregar dos columnas al marco de datos Pyspark existente usando WithColumns. 

WithColumns se usa para cambiar el valor, convertir el tipo de datos de una columna existente, crear una nueva columna y mucho más.

Sintaxis: df.withColumn(colName, col)

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

Ejemplo 1: crear un marco de datos y luego agregar dos columnas.

Aquí vamos a crear un marco de datos a partir de una lista del conjunto de datos dado.

Python3

# Create a spark session
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('SparkExamples').getOrCreate()
  
# Create a spark dataframe
columns = ["Name", "Course_Name",
           "Months",
           "Course_Fees", "Discount",
           "Start_Date", "Payment_Done"]
data = [
    ("Amit Pathak", "Python", 3, 10000, 1000,
     "02-07-2021", True),
    ("Shikhar Mishra", "Soft skills", 2,
     8000, 800, "07-10-2021", False),
    ("Shivani Suvarna", "Accounting", 6,
     15000, 1500, "20-08-2021", True),
    ("Pooja Jain", "Data Science", 12,
     60000, 900, "02-12-2021", False),
]
  
df = spark.createDataFrame(data).toDF(*columns)
  
# View the dataframe
df.show()

Producción:

Ahora agregue las columnas:

Aquí, creamos dos columnas basadas en las columnas existentes.

Python3

new_df = df.withColumn('After_discount',
                       df.Course_Fees - df.Discount).withColumn('Before_discount',
                                                                df.Course_Fees)
new_df.show()

Producción:

Ejemplo 2: crear un marco de datos desde csv y luego agregar las columnas.

Aquí usaremos el archivo cricket_data_set_odi.csv como un conjunto de datos y crearemos un marco de datos a partir de este archivo.

Creando Dataframe para demostración:

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:

Luego, agregando las columnas en un marco de datos existente:

Python3

new_df = df.withColumn(
    'Hundred_run', df.Hundreds*100).withColumn(
    'Avg_run', df.Runs / df.Matches)
  
new_df.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por kumar_satyam 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 *