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:
- new_column es la columna.
- 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:
- new_column es la columna.
- 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:
- new_column es la columna.
- lit () es una función utilizada para agregar valores a la columna.
- When () tomará condición como entrada y agregará valores basados en los criterios cumplidos.
- 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:
- new_column es la columna.
- 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:
- new_column es la columna
- 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.