En Python, Pyspark es un módulo Spark que proporciona un tipo similar de procesamiento como Spark usando DataFrame. Expr () en Pyspark se refiere a una expresión de SQL utilizada para extraer los datos realizando algunas operaciones. Expr () se puede usar en muchos escenarios.
Sintaxis real
Expr (expresión SQL)
Se necesita una expresión de SQL y realiza algunas operaciones dentro de la expresión.
Discutamos uno por uno. Antes de eso, tenemos que crear un marco de datos de Pyspark para la demostración."
Ejemplo
Vamos a crear un marco de datos con 5 filas y 6 columnas y mostrarlo usando el método show ().
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#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)
#Data DataFrame
df.espectáculo()
Producción
escenario 1: Concatenando una o más columnas
En este escenario, concatenaremos una o más columnas en Pyspark DataFrame usando Expr ().
Utiliza el método withColumn () para crear un nuevo nombre de columna para las columnas concatenadas.
Sintaxis
marco de datos.withColumn ("column_name", expresión)
Parámetros
Se necesitan dos parámetros.
- Primero está el nombre de la columna utilizado como el nombre de la columna para las columnas concatenadas
- La expresión se crea usando expr () para concatenar columnas.
Aquí la expresión es:
Expr ("columna1 || separador || columna2 || separador '|| ... || columna n")
Aquí, la columna se refiere a los nombres de la columna para concatenarse con un separador entre ellos. Puede ser cualquier personaje, como personajes especiales.
Ejemplo
En este ejemplo, estamos concatenando tres columnas: Roll No Nombre y dirección separadas por " -" Y el nombre de la columna para estas columnas concatenadas es: "Rollno con nombre y dirección."
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#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)
#Concate rollNo, columnas de nombre y dirección Uaing Expr ()
df.WithColumn ("Rollno con nombre y dirección", Expr ("Rollno || '-' || Nombre || '-' || Dirección")).espectáculo()
Producción
Podemos ver que las columnas Rollno, Nombre y Dirección están concatenadas con el "-" Separador.
Escenario 2: Agregue una nueva columna basada en condiciones
Aquí, utilizaremos Exr () para especificar las condiciones dentro y, junto con COLUMN (), para asignar los valores de las condiciones devueltas en una nueva columna.
Podemos especificar las condiciones utilizando el caso cuando
Estructura
Caso cuando
ENTONCES
Caso cuando
ENTONCES
…
…
DEMÁS
FIN
En el interior, cuando tenemos que proporcionar la condición y el interior, entonces tenemos que realizar una acción.
Si la condición interna es verdadera, entonces se ejecuta el bloque. Si falla, va al bloque y fin.
Esta declaración condicional se proporciona dentro de Expr () como una expresión de SQL.
Sintaxis
marco de datos.withColumn ("columna", expr ("caso cuando condición1 entonces acción" +"Cuando condición2 entonces acción ... el más acción de acción final"))
Dónde,
- La columna es la nueva columna que se crea, y los valores se asignan en función de las condiciones en esta columna
- Expr () toma el caso cuando la lógica condicional
Ejemplo
En este ejemplo, estamos creando una nueva columna: "altura actualizada", y asignando valores en función de las siguientes condiciones aplicadas a la columna de altura.
Si la altura es mayor que 5, asigne 10 en la columna de altura actualizada a través de ella.
Si la altura es inferior a 5, asigne 5 en la columna de altura actualizada a través de ella.
De lo contrario, actualice la columna de altura a 7 en las filas.
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#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 de altura
#IF La altura es mayor que 5: asigne 10 en la columna de altura actualizada a través de ella
#IF La altura es inferior a 5: asigne 5 en la columna de altura actualizada a través de ella
#columna de altura actualizada en otros como 7 en las filas
df.WithColumn ("Altura actualizada", Expr ("Caso cuando la altura> 5 luego 10" +"Cuando la altura <5 THEN 5 ELSE 7 END")).show()
Producción
Podemos ver que los valores se asignan en la columna "Altura actualizada" en función de las condiciones.
Escenario 3: Realizar operaciones aritméticas
Es posible realizar operaciones aritméticas como adición, resta, multiplicación y división con columnas existentes usando expr ().
Aquí Exr () se puede usar con una cláusula SELECT para mostrar las columnas actualizadas.
Sintaxis
marco de datos.Seleccionar (expr ("expresión"))
La expresión se usa para realizar operaciones aritméticas que pueden ser:
"Valor de columna arithmetic_operator como new_column"
Aquí, la columna es el nombre de la columna en el que podemos realizar operaciones aritméticas; El valor es el número agregado a cada fila en la columna, y new_column es el nombre de la columna que almacena el resultado.
Ejemplo
En este ejemplo, realizaremos dos operaciones aritméticas: suma y resta en la columna de edad.
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#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 de 10 a edad
df.Seleccionar (DF.edad, expr ("edad + 10 como edad_after_10")).espectáculo()
#contratación 10 de la columna de edad
df.Seleccionar (DF.edad, expr ("edad - 10 como age_before_10")).espectáculo()
Producción
En la operación de adición, estamos agregando 10 a la columna de edad y almacenamos en la columna "Age_After_10".
En la operación de sustracción, restamos 10 de la columna de edad y la almacenamos en la columna "Age_Before_10".
Conclusión
En este tutorial de Pyspark, vimos cómo usar Expr () en tres escenarios diferentes. Se puede utilizar para expresiones condicionales, se puede usar para realizar operaciones aritméticas y se puede usar para concatenar múltiples columnas.