"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment ajouter une séquence constante dans Spark DataFrame?

Comment ajouter une séquence constante dans Spark DataFrame?

Publié le 2025-04-17
Parcourir:498

How to Add Constant Columns in Spark DataFrames?

Ajouter des colonnes constantes dans Spark DataFrames

dans Spark, ajoutant une colonne constante à un dataframe avec une valeur spécifique pour chaque ligne peut être atteinte à l'aide de diverses méthodes. Valeur littérale, qui peut être utilisée comme deuxième argument de DataFrame.WithColumn pour ajouter une colonne constante:

de pyspark.sql. df.WithColumn ('new_column', lit (10))

pour des colonnes plus complexes, des fonctions comme le tableau, la carte et la structure peuvent être utilisées pour construire les valeurs de colonnes souhaitées:

from pyspark.sql.functions import lit

df.withColumn('new_column', lit(10))

typedlit (Spark 2.2)

from pyspark.sql.functions import array, map, struct

df.withColumn("some_array", array(lit(1), lit(2), lit(3)))
df.withColumn("some_map", map(lit("key1"), lit(1), lit("key2"), lit(2)))

en utilisant un udf

comme alternative à l'utilisation de valeurs littérales, il est possible de créer une fonction définie par l'utilisateur (UDF) qui renvoie une valeur constante pour chaque ligne et utilise que UDF pour ajouter la chronique:

import org.apache.spark.sql.functions.typedLit

df.withColumn("some_array", typedLit(Seq(1, 2, 3)))
df.withColumn("some_struct", typedLit(("foo", 1, 0.3)))
note:

Les valeurs constantes peuvent également être transmises en tant qu'arguments aux fonctions udfs ou sql en utilisant les mêmes constructions.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3