En este artículo, veremos cómo realizar la adición de nuevas columnas en el marco de datos de Pyspark mediante varios métodos. Significa que queremos crear una nueva columna que contendrá la suma de todos los valores presentes en la fila dada. Ahora analicemos los diversos métodos sobre cómo agregamos la suma como nuevas columnas
Pero primero, creemos Dataframe para demostración
Python3
# import SparkSession from the pyspark from pyspark.sql import SparkSession # build and create the SparkSession # with name "sum as new_col" spark = SparkSession.builder.appName("sum as new_col").getOrCreate() # Creating the Spark DataFrame data = spark.createDataFrame([('x', 5, 3, 7), ('Y', 3, 3, 6), ('Z', 5, 2, 6)], ['A', 'B', 'C', 'D']) # Print the schema of the DataFrame by # printSchema() data.printSchema() # Showing the DataFrame data.show()
Producción:
Ahora veremos los diferentes métodos sobre cómo agregar nuevas columnas en Spark Dataframe.
Método 1: Usar UDF
En este método, definiremos la función que tomará el nombre de la columna como argumento y devolverá la suma total de las filas. Mediante el uso del método UDF (funciones definidas por el usuario) que se utiliza para hacer una función reutilizable en chispa. Esta función nos permite crear la nueva función según nuestros requisitos, por eso también se denomina función definida usada.
Ahora definimos el tipo de datos de la función udf y creamos las funciones que devolverán los valores, que es la suma de todos los valores en la fila.
Python3
# import the functions as F from pyspark.sql import pyspark.sql.functions as F from pyspark.sql.types import IntegerType # define the sum_col def sum_col(b, c, d): col_sum = b+c+d return col_sum # integer datatype is defined new_f = F.udf(sum_col, IntegerType()) # calling and creating the new # col as udf_method_sum df_col1 = data.withColumn("Udf_method_sum", new_f("B", "C", "D")) # Showing and printing the schema of the Dataframe df_col1.printSchema() df_col1.show()
Producción:
Método 2: Usar la función expr().
Usando expr(str) la función que tomará el argumento de las expresiones como una string. Hay otra función en pyspark que tomará una expresión matemática como argumento en forma de string. Por ejemplo, si desea la suma de las filas, pase los argumentos como ‘n1+n2+n3+n4…….’ donde n1,n2,n3… son los nombres de las columnas
Python3
# import expr from the functions from pyspark.sql.functions import expr # create the new column as by withcolumn # by giving argument as # col_name ='expression_method_sum' # and expr() function which # will take expressions argument as string df_col1 = df_col1.withColumn('expression_method_sum', expr("B+C + D")) # Showing and printing the schema of # the Dataframe df_col1.printSchema() df_col1.show()
Producción:
Método 3: Usar la operación SQL
En este método primero, tenemos que crear la vista temporal de la tabla con la ayuda de createTempView podemos crear la vista temporal. La vida de esta temperatura depende de la vida de la sparkSession
Luego, después de crear la tabla, seleccione la tabla por cláusula SQL que tomará todos los valores como una string
Python3
# Creating the temporary view # of the DataFrame as temp. df_col1 = df_col1.createTempView("temp") # By using sql clause creating # new columns as sql_method df_col1=spark.sql('select *, B+C+D as sql_method from temp') # Printing the schema of the dataFrame # and showing the DataFrame df_col1.printScheam() df_col1.show()
Producción:
Método 4: Usar select()
Seleccione la tabla usando el método select() y pase los argumentos, el primero es el nombre de la columna, o «*» para seleccionar toda la tabla y el segundo argumento pasa los nombres de las columnas para la adición, y la función alias() se usa para dar el nombre de la columna recién creada.
Python3
# select everything from table df_col1 and # create new sum column as " select_method_sum". df_col1 = df_col1.select('*', (df_col1["B"]+df_col1["C"]+df_col1['D']). alias("select_method_sum")) # Showing the schema and table df_col1.printSchema() df_col1.show()
Producción:
Método 5: Usando withcolumn()
WithColumn() es una función de transformación del marco de datos que se utiliza para cambiar valores, cambiar tipos de datos y crear nuevas columnas a partir de las existentes.
Esta función tendrá argumentos como nuevo nombre de columna y nombre de columna para la suma.
Python3
# by using withcolumn function df_col1 = df_col1.withColumn('withcolum_Sum', data['B']+data['C']+data['D']) # Showing and printing the schema # of the Dataframe df_col1.printSchema() df_col1.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por jeetu182370 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA