En este artículo, veremos cómo agregar una columna constante en un marco de datos PySpark.
Se puede hacer de estas formas:
- Usando encendido()
- Usando la consulta Sql.
Creando Dataframe para demostración:
Python3
# Create a spark session from pyspark.sql import SparkSession from pyspark.sql.functions import lit spark = SparkSession.builder.appName('SparkExamples').getOrCreate() # Create a spark dataframe columns = ["Name", "Course_Name", "Months", "Course_Fees", "Discount", "Start_Date", "Payment_Done"] data = [ ("Amit Pathak", "Python", 3, 10000, 1000, "02-07-2021", True), ("Shikhar Mishra", "Soft skills", 2, 8000, 800, "07-10-2021", False), ("Shivani Suvarna", "Accounting", 6, 15000, 1500, "20-08-2021", True), ("Pooja Jain", "Data Science", 12, 60000, 900, "02-12-2021", False), ] df = spark.createDataFrame(data).toDF(*columns) # View the dataframe df.show()
Producción:
Método 1: Usando lit()
En estos métodos, usaremos la función lit(), usaremos withColumn() para seleccionar el marco de datos:
Sintaxis: df.withColumn(“NUEVA_COL”, iluminado(VALOR))
columnas
Python3
df.withColumn('Status', lit(0)).show()
Producción:
Ejemplo 2: Agregar valor constante basado en otra columna.
Python3
from pyspark.sql.functions import when, lit, col df.withColumn( "Great_Discount", when(col("Discount") >=1000,lit( "Yes")).otherwise(lit("NO"))).show()
Producción:
Método 2: Usar la consulta Sql
Aquí usaremos la consulta sql dentro de Pyspark. Crearemos una vista temporal de la tabla con la ayuda de createTempView() y la vida de esta temperatura depende de la vida de sparkSession. registerTempTable() creará la tabla temporal si no está disponible o si está disponible, entonces reemplácela.
Luego, después de crear la tabla, seleccione la tabla por cláusula SQL que tomará todos los valores como una string.
Python3
df.registerTempTable('table') newDF = spark.sql('select *, 1 as newCol from table') newDF.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA