En este artículo, veremos cómo agregar una nueva columna con un valor predeterminado en PySpark Dataframe.
Las tres formas de agregar una columna a PandPySpark como DataFrame con valor predeterminado.
- Usando pyspark.sql.DataFrame.withColumn(colName, col)
- Usando pyspark.sql.DataFrame.select(*columnas)
- Usando pyspark.sql.SparkSession.sql(sqlQuery)
Método 1: Usar pyspark.sql.DataFrame.withColumn(colName, col)
Agrega una columna o reemplaza la columna existente que tiene el mismo nombre a un DataFrame y devuelve un nuevo DataFrame con todas las columnas existentes a las nuevas. La expresión de la columna debe ser una expresión sobre este DataFrame y agregar una columna de algún otro DataFrame generará un error.
Sintaxis: pyspark.sql.DataFrame.withColumn(colName, col)
Parámetros: este método acepta el siguiente parámetro como se mencionó anteriormente y se describe a continuación.
- colName: Es una string y contiene el nombre de la nueva columna.
- col: Es una expresión de columna para la nueva columna.
Devoluciones: marco de datos
Primero, cree un DataFrame simple.
Python3
import findspark findspark.init() # Importing the modules from datetime import datetime, date import pandas as pd from pyspark.sql import SparkSession # creating the session spark = SparkSession.builder.getOrCreate() # creating the dataframe pandas_df = pd.DataFrame({ 'Name': ['Anurag', 'Manjeet', 'Shubham', 'Saurabh', 'Ujjawal'], 'Address': ['Patna', 'Delhi', 'Coimbatore', 'Greater noida', 'Patna'], 'ID': [20123, 20124, 20145, 20146, 20147], 'Sell': [140000, 300000, 600000, 200000, 600000] }) df = spark.createDataFrame(pandas_df) print("Original DataFrame :") df.show()
Producción:
Agregue una nueva columna con valor predeterminado:
Python3
# Add new column with NUll from pyspark.sql.functions import lit df = df.withColumn("Rewards", lit(None)) df.show() # Add new constanst column df = df.withColumn("Bonus Percent", lit(0.25)) df.show()
Producción:
Método 2: Usar pyspark.sql.DataFrame.select(*cols)
Podemos usar pyspark.sql.DataFrame.select() para crear una nueva columna en DataFrame y configurarla con los valores predeterminados. Proyecta un conjunto de expresiones y devuelve un nuevo DataFrame.
Sintaxis: pyspark.sql.DataFrame.select(*columnas)
Parámetros: este método acepta el siguiente parámetro como se mencionó anteriormente y se describe a continuación.
- cols: Contiene nombres de columnas (string) o expresiones (Column)
Devoluciones: marco de datos
Primero, cree un DataFrame simple.
Python3
import findspark findspark.init() # Importing the modules from datetime import datetime, date import pandas as pd from pyspark.sql import SparkSession # creating the session spark = SparkSession.builder.getOrCreate() # creating the dataframe pandas_df = pd.DataFrame({ 'Name': ['Anurag', 'Manjeet', 'Shubham', 'Saurabh', 'Ujjawal'], 'Address': ['Patna', 'Delhi', 'Coimbatore', 'Greater noida', 'Patna'], 'ID': [20123, 20124, 20145, 20146, 20147], 'Sell': [140000, 300000, 600000, 200000, 600000] }) df = spark.createDataFrame(pandas_df) print("Original DataFrame :") df.show()
Producción:
Agregue una nueva columna con valor predeterminado:
Python3
# Add new column with NUll from pyspark.sql.functions import lit df = df.select('*', lit(None).alias("Rewards")) # Add new constanst column df = df.select('*', lit(0.25).alias("Bonus Percent")) df.show()
Producción:
Método 3: Usar pyspark.sql.SparkSession.sql(sqlQuery)
Podemos usar pyspark.sql.SparkSession.sql() para crear una nueva columna en DataFrame y configurarla con los valores predeterminados. Devuelve un DataFrame que representa el resultado de la consulta dada.
Sintaxis: pyspark.sql.SparkSession.sql(sqlQuery)
Parámetros: este método acepta el siguiente parámetro como se mencionó anteriormente y se describe a continuación.
- sqlQuery: es una string y contiene la consulta ejecutable sql.
Devoluciones: marco de datos
Primero, crea un DataFrame simple:
Python3
import findspark findspark.init() # Importing the modules from datetime import datetime, date import pandas as pd from pyspark.sql import SparkSession # creating the session spark = SparkSession.builder.getOrCreate() # creating the dataframe pandas_df = pd.DataFrame({ 'Name': ['Anurag', 'Manjeet', 'Shubham', 'Saurabh', 'Ujjawal'], 'Address': ['Patna', 'Delhi', 'Coimbatore', 'Greater noida', 'Patna'], 'ID': [20123, 20124, 20145, 20146, 20147], 'Sell': [140000, 300000, 600000, 200000, 600000] }) df = spark.createDataFrame(pandas_df) print("Original DataFrame :") df.show()
Producción:
Agregue una nueva columna con valor predeterminado:
Python3
# Add columns to DataFrame using SQL df.createOrReplaceTempView("GFG_Table") # Add new column with NUll df=spark.sql("select *, null as Rewards from GFG_Table") # Add new constanst column df.createOrReplaceTempView("GFG_Table") df=spark.sql("select *, '0.25' as Bonus_Percent from GFG_Table") df.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA