Agregue una columna con el valor literal en PySpark DataFrame

En este artículo, vamos a ver cómo agregar una columna con el valor literal en PySpark Dataframe.

Creando dataframe para demostración:

Python3

# import SparkSession from the pyspark
from pyspark.sql import SparkSession
 
# build and create the
# SparkSession with name "lit_value"
spark = SparkSession.builder.appName("lit_value").getOrCreate()
 
# create the spark dataframe with columns A,B
data = spark.createDataFrame([('x',5),('Y',3),
                            ('Z',5) ],['A','B'])
 
# showing the schema and  table
data.printSchema()
data.show()

 
Producción: 

Método 1: Usar la función Lit()

Aquí podemos agregar la columna constante ‘valores_literales_1’ con el valor 1 usando el método de selección. La función lit() insertará valores constantes en todas las filas.

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 la función lit() con valores constantes. 

Python3

# Import the lit() function
# from the pyspark.sql.functions
from pyspark.sql.functions import lit
 
# select all the columns from data
# table and insert new columns
# 'literal_values_1' with values 1
df2 = data.select('*' ,lit("1").alias("literal_values_1"))
  
# showing the schema and updated table
df2.printSchema()
df2.show()

Producción:

Método 2: Uso de la cláusula 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. CreateOrReplace creará la tabla temporal si no está disponible o, si está disponible, la reemplazará.

Luego, después de crear la tabla, seleccione la tabla por cláusula SQL que tomará todos los valores como una string 

Python3

# this will create a temp view of the table as lit_val
df2.createOrReplaceTempView("temp")
 
# select all the columns and rows
# from data table and insert new
# columns 'literal_values_2' with values 2
df2 = spark.sql("select *, 2 as literal_values_2 from temp")
 
# showing the schema and updated table
df2.printSchema()
df2.show()

Producción:

Método 3: Uso del método UDF (funciones definidas por el usuario)

Esta función nos permite crear la nueva función según nuestros requisitos, por eso también se denomina función definida por el usuario. Ahora definimos el tipo de datos de la función UDF y creamos las funciones que devolverán los valores en forma de una nueva columna.

Python3

# import the udf from pyspark
from pyspark.sql.functions import udf
 
# defining the data types of udf which is
# integer type
@udf("int")
 
# defining the lit_col() function which
# will return literal values to  data frame
def lit_col():
    return 3
 
# create new column as
# 'literal_values_3' with values 3
df2 = df2.withColumn('literal_values_3', lit_col())
 
# showing the schema and updated table
df2.printSchema()
df2.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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *