¿Cómo cambiar los nombres de las columnas del marco de datos en PySpark?

En este artículo, vamos a ver cómo cambiar los nombres de las columnas en el marco de datos pyspark. 

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

Python3

# Importing necessary libraries
from pyspark.sql import SparkSession
 
# Create a spark session
spark = SparkSession.builder.appName('pyspark - example join').getOrCreate()
 
# Create data in dataframe
data = [(('Ram'), '1991-04-01', 'M', 3000),
        (('Mike'), '2000-05-19', 'M', 4000),
        (('Rohini'), '1978-09-05', 'M', 4000),
        (('Maria'), '1967-12-01', 'F', 4000),
        (('Jenis'), '1980-02-17', 'F', 1200)]
 
# Column names in dataframe
columns = ["Name", "DOB", "Gender", "salary"]
 
# Create the spark dataframe
df = spark.createDataFrame(data=data,
                           schema=columns)
 
# Print the dataframe
df.show()

Producción :

Método 1: Usando withColumnRenamed()

Usaremos el método withColumnRenamed() para cambiar los nombres de columna del marco de datos pyspark.

Sintaxis: DataFrame.withColumnRenamed(existente, nuevo)

Parámetros

  • existingstr: nombre de columna existente del marco de datos para cambiar el nombre.
  • newstr: Nuevo nombre de columna.
  • Tipo de devolución: devuelve un marco de datos cambiando el nombre de una columna existente.

Ejemplo 1: Cambiar el nombre de la única columna en el marco de datos

Aquí estamos cambiando el nombre de la columna ‘DOB’ a ‘DateOfBirth’.

Python3

# Rename the column name from DOB to DateOfBirth
# Print the dataframe
df.withColumnRenamed("DOB","DateOfBirth").show()

Producción :

Ejemplo 2: cambio de nombre de varias columnas

Python3

# Rename the column name 'Gender' to 'Sex'
# Then for the returning dataframe
# again rename the 'salary' to 'Amount'
df.withColumnRenamed("Gender","Sex").
withColumnRenamed("salary","Amount").show()

Producción :

Método 2: Usar selectExpr()

Cambiar el nombre de las columnas usando el método selectExpr()

Sintaxis: DataFrame.selectExpr(expr)

Parámetros:

expr: es una expresión SQL.

Aquí estamos renombrando Nombre como un nombre.

Python3

# Select the 'Name' as 'name'
# Select remaining with their original name
data = df.selectExpr("Name as name","DOB","Gender","salary")
 
# Print the dataframe
data.show()

Producción :

Método 3: Usando el método select()

Sintaxis: DataFrame.select(columnas)

Parámetros:

cols: Lista de nombres de columnas como strings.

Tipo de devolución: selecciona las columnas en el marco de datos y devuelve un nuevo marco de datos.

Aquí cambiamos el nombre de la columna ‘salario’ a ‘Cantidad’

Python3

# Import col method from pyspark.sql.functions
from pyspark.sql.functions import col
 
# Select the 'salary' as 'Amount' using aliasing
# Select remaining with their original name
data = df.select(col("Name"),col("DOB"),
                 col("Gender"),
                 col("salary").alias('Amount'))
 
# Print the dataframe
data.show()

Producción :

Método 4: Usar toDF()

Esta función devuelve un nuevo DataFrame con nuevos nombres de columna especificados.

Sintaxis: toDF(*col)

Donde, col es un nuevo nombre de columna

En este ejemplo, crearemos una lista ordenada de nuevos nombres de columna y la pasaremos a la función toDF

Python3

Data_list = ["Emp Name","Date of Birth",
             " Gender-m/f","Paid salary"]
 
new_df = df.toDF(*Data_list)
new_df.show()

Producción:

Publicación traducida automáticamente

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