En Python, Pyspark es un módulo Spark utilizado para proporcionar un tipo similar de procesamiento como Spark usando DataFrame.
WithColumn () en Pyspark se utiliza para realizar las operaciones en las columnas de Pyspark DataFrame. Las operaciones incluyen
- Cambiar el tipo de datos de la columna
- Modificar los valores en la columna
- Agregue una nueva columna de la columna existente
Antes de pasar a los métodos, crearemos Pyspark DataFrame
Ejemplo:
Aquí crearemos un marco de datos de Pyspark con 5 filas y 6 columnas.
#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
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 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', 'edad': 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:
Cambiar el tipo de datos de la columna
Podemos cambiar el tipo de datos de una columna en particular utilizando el método withColumn ().
Sintaxis:
Marco de datos.WithColumn ("column_name", col ("column_name").Cast ("DataType"))
Parámetros:
1. column_name es la columna cuyo tipo de datos se cambia
2. La función col () se usa para obtener el nombre de la columna
3. Cast () se usa para cambiar el tipo de datos de columna de un tipo a otro, aceptando el nombre del tipo de datos como parámetro. Los tipos de datos incluyen cadena, entero, doble.
Ejemplo:
En este ejemplo, la altura es de tipo de datos flotante. Podemos cambiarlo a entero utilizando el método anterior y mostrando el esquema utilizando el método printSchema () y DataFrame usando el método Collect ().
#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
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 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', 'edad': 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)
#Convertir el tipo de flotación a la columna de altura del tipo entero
DF = DF.WithColumn ("altura", col ("altura").Cast ("Integer"))
#Data DataFrame de DataSplay
Imprimir (DF.recolectar())
#llets muestra el esquema
df.printschema ()
Producción:
[Fila (direcciones = 'guntur', edad = 23, altura = 5, name = 'sravan', rollNo = '001', peso = 67), fila (direcciones = 'hyd', edad = 16, altura = 3, name = 'ojaswi', rollNo = '002', peso = 34), fila (dirección = 'patna', edad = 7, altura = 2, name = 'Gnanesh Chowdary', rollNo = '003', peso = 17) , Fila (dirección = 'hyd', edad = 9, altura = 3, name = 'rohith', rollNo = '004', peso = 28), fila (dirección = 'hyd', edad = 37, altura = 5, name = 'sridevi', rollno = '005', peso = 54)]
raíz
|- Dirección: String (Nullable = True)
|- edad: larga (anulable = verdadero)
|- Altura: Integer (Nullable = True)
|- Nombre: String (Nullable = True)
|- Rollno: String (Nullable = True)
|- peso: largo (anulable = verdadero)
Modificar los valores en la columna
Podemos modificar los valores de una columna particular utilizando el método withColumn ().
Sintaxis:
Marco de datos.withColumn ("column_name", col ("column_name"))
Parámetros:
1. column_name es la columna cuyo tipo de datos se cambia
2. La función col () se usa para cambiar los valores en el nombre de la columna
Ejemplo:
En este ejemplo, restamos 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
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 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', 'edad': 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)
#decure cada valor en la columna de peso por 10
DF = DF.WithColumn ("peso", col ("peso")-10)
#Data DataFrame de DataSplay
Imprimir (DF.recolectar())
#llets muestra el esquema
df.printschema ()
Producción:
[Fila (dirección = 'Guntur', edad = 23, altura = 5.79, name = 'sravan', rollNo = '001', peso = 57), fila (dirección = 'hyd', edad = 16, altura = 3.79, nombre = 'ojaswi', rollNo = '002', peso = 24), fila (direcciones = 'patna', edad = 7, altura = 2.79, name = 'Gnanesh Chowdary', rollNo = '003', peso = 7), fila (dirección = 'hyd', edad = 9, altura = 3.69, name = 'rohith', rollno = '004', peso = 18), fila (dirección = 'hyd', edad = 37, altura = 5.59, nombre = 'sridevi', rollno = '005', peso = 44)]
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)
Agregue una nueva columna de la columna existente
Podemos agregar una nueva columna de 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:
Este ejemplo 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
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 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', 'edad': 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())
#llets 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)
Conclusión:
Este artículo discutió cómo cambiar los tipos de datos, modificar los valores en las columnas existentes y agregar una nueva columna usando el método withColumn ().