Agregue una nueva columna al Pyspark DataFrame

Agregue una nueva columna al Pyspark DataFrame
En Python, Pyspark es un módulo Spark utilizado para proporcionar un tipo similar de procesamiento como Spark usando DataFrame. Discutiremos cómo agregar una nueva columna al Pyspark DataFrame existente.

Antes de pasar a los métodos, crearemos Pyspark DataFrame.

Ejemplo:

Aquí, vamos a crear Pyspark DataFrame con 5 filas y 6 columnas.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa la función col
de Pyspark.sql.Funciones Importar Col
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
Students = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Disprazando el marco de datos
df.espectáculo()

Producción:

Método 1: Agregue nueva columna con valores usando withColumn ()

Podemos agregar una nueva columna desde una columna existente utilizando el método withColumn ().

Sintaxis:

marco de datos.WithColumn ("new_column", col ("column_name"))

Parámetros:

  1. new_column es la columna.
  2. La función col () se usa para agregar sus valores de columna a New_Column.

Ejemplo:

En este ejemplo, vamos a crear una nueva columna: "potencia" y agregar valores a esta columna multiplicando cada valor en la columna de peso por 10.

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa la función col
de Pyspark.sql.Funciones Importar Col
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
Students = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
Columna #Add llamada Power
#de la columna de peso multiplicada por 2
DF = DF.WithColumn ("potencia", col ("peso")* 2)
#Data DataFrame de DataSplay
Imprimir (DF.recolectar())
#lets muestra el esquema
df.printschema ()

Producción:

[Fila (dirección = 'Guntur', edad = 23, altura = 5.79, name = 'sravan', rollNo = '001', peso = 67, potencia = 134), fila (dirección = 'hyd', edad = 16, altura = 3.79, name = 'ojaswi', rollno = '002', peso = 34, potencia = 68), fila (dirección = 'patna', edad = 7, altura = 2.79, name = 'Gnanesh Chowdary', rollNo = '003', peso = 17, potencia = 34), fila (dirección = 'hyd', edad = 9, altura = 3.69, nombre = 'rohith', rollNo = '004', peso = 28, potencia = 56), fila (direcciones = 'hyd', edad = 37, altura = 5.59, name = 'sridevi', rollno = '005', peso = 54, potencia = 108)]
raíz
|- Dirección: String (Nullable = True)
|- edad: larga (anulable = verdadero)
|- Altura: Double (Nullable = True)
|- Nombre: String (Nullable = True)
|- Rollno: String (Nullable = True)
|- peso: largo (anulable = verdadero)
|- poder: largo (anulable = verdadero)

Método 2: Agregue nueva columna sin valores usando withColumn ()

Podemos agregar una nueva columna con ninguno de los valores utilizando el método withColumn () a través de la función lit ().

Sintaxis:

marco de datos.WithColumn ("New_Column", Lit (None))

Parámetros:

  1. new_column es la columna.
  2. lit () es una función utilizada para agregar valores a la columna.

Ejemplo:

En este ejemplo, vamos a crear una nueva columna: "potencia" y agregar no valores a esta columna.

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa las funciones col, Lit
de Pyspark.sql.Funciones Importar col, Lit
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
Students = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
Columna #Add llamada Power
# con ninguno de los valores
DF = DF.WithColumn ("Power", Lit (None))
#Data DataFrame de DataSplay
Imprimir (DF.recolectar())

Producción:

[Fila (dirección = 'Guntur', edad = 23, altura = 5.79, name = 'sravan', rollNo = '001', peso = 67, potencia = none), fila (dirección = 'hyd', edad = 16, altura = 3.79, name = 'ojaswi', rollno = '002', peso = 34, potencia = none), fila (dirección = 'patna', edad = 7, altura = 2.79, name = 'Gnanesh Chowdary', rollNo = '003', peso = 17, potencia = none), fila (dirección = 'hyd', edad = 9, altura = 3.69, name = 'rohith', rollno = '004', peso = 28, potencia = none), fila (dirección = 'hyd', edad = 37, altura = 5.59, name = 'sridevi', rollNo = '005', peso = 54, potencia = ninguno)]]

Método 3: Agregue nueva columna con valores basados ​​en la condición usando withColumn ()

Podemos agregar una nueva columna con condiciones utilizando el método y los valores withColumn () a través de la función lit (). Podemos especificar las condiciones utilizando Why () función. Esto se puede importar de Pyspark.sql.funciones.

Sintaxis:

marco de datos.WithColumn ("New_Column", When ((DataFrame.columna < 11), lit("value1"))
.Cuando ((condición), encendido ("valor2"))

. Cuando ((condición), encendido ("valor n"))
.de lo contrario (encendido ("valor"))))

Parámetros:

  1. new_column es la columna.
  2. lit () es una función utilizada para agregar valores a la columna.
  3. When () tomará condición como entrada y agregará valores basados ​​en los criterios cumplidos.
  4. de lo contrario () es el último paso que ejecutará cualquiera de las condiciones anteriores que no cumplan con los criterios.

Ejemplo:

En este ejemplo, vamos a crear una nueva columna: "potencia" y agregar valores de la columna de edad.

  • Agregue un valor bajo si la edad es menor que - 11
  • Agregue un alto valor si la edad es menor o igual a - 12 y mayor o igual a - 20
  • De lo contrario, agregue alto valor
#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa el col, encendido, cuando funciona
de Pyspark.sql.las funciones importan col, encendidas, cuando
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
Students = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Add una columna - potencia
#Vacas de columna ADD basadas en la columna de edad
#especificando las condiciones
df.WithColumn ("poder", cuando ((df.edad < 11), lit("Low"))
.Cuando ((df.edad> = 12) y (df.edad <= 20), lit("Medium"))
.de lo contrario (encendido ("alto")))).espectáculo()

Producción:

Método 4: Agregue nueva columna con valores usando select ()

Podemos agregar una nueva columna desde una columna existente utilizando el método select ().

Sintaxis:

marco de datos.Seleccionar (encendido (df.columna).alias ("new_column"))

Parámetros:

  1. new_column es la columna.
  2. La función lit () se usa para agregar valores de columna a la nueva_column.

Ejemplo:

En este ejemplo, vamos a crear una nueva columna: "potencia" y agregar valores a esta columna multiplicando cada valor en la columna de peso por 10.

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa las funciones col, Lit
de Pyspark.sql.Funciones Importar col, Lit
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
Students = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
columna #Add nombrada - columna de poder de peso
# Agregar valores multiplicando con 10
df.Seleccione ("Rollno", Lit (DF.Peso * 10).alias ("poder")).espectáculo()

Producción:

Método 5: Agregue nueva columna sin valores usando select ()

Podemos agregar una nueva columna con valores nulos usando el método select ().

Sintaxis:

marco de datos.Seleccione (Lit (Ninguno).alias ("new_column"))

Parámetros:

  1. new_column es la columna
  2. La función lit () se usa para agregar valores de ninguno

Ejemplo:

En este ejemplo, vamos a crear una nueva columna: "potencia" y agregar no valores a esta columna.

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa las funciones col, Lit
de Pyspark.sql.Funciones Importar col, Lit
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
Students = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
COLUMA #Add nombrada - Power
# Agregar valores nulos sin ninguno
df.Seleccione ("Rollno", Lit (Ninguno).alias ("poder")).espectáculo()

Producción:

Conclusión

En este tutorial, discutimos cómo agregar una nueva columna usando funciones select () y withColumn (). Hemos observado que Lit () es la función que se usa para agregar valores a la nueva columna. Finalmente, discutimos cómo agregar ninguno/valores nulos y los valores de las columnas existentes a Pyspark DataFrame.