Comment ajouter une colonne constante à un Spark DataFrame ?

Linda Hamilton
Libérer: 2024-11-07 00:31:02
original
383 Les gens l'ont consulté

How to Add a Constant Column to a Spark DataFrame?

Création d'une colonne constante dans un Spark DataFrame

L'ajout d'une colonne constante à un Spark DataFrame avec une valeur arbitraire qui s'applique à toutes les lignes peut être atteint de plusieurs manières. La méthode withColumn, prévue à cet effet, peut conduire à des erreurs lorsqu'on tente de fournir une valeur directe comme deuxième argument.

Utilisation de valeurs littérales (Spark 1.3)

Pour résoudre ce problème, utilisez lit pour créer une représentation littérale de la valeur souhaitée :

from pyspark.sql.functions import lit

df.withColumn('new_column', lit(10))
Copier après la connexion

Création de colonnes complexes (Spark 1.4)

Pour des types de colonnes plus complexes , tels que des tableaux, des structures ou des cartes, utilisez les fonctions appropriées :

from pyspark.sql.functions import array, struct

df.withColumn('array_column', array(lit(1), lit(2)))
df.withColumn('struct_column', struct(lit('foo'), lit(1)))
Copier après la connexion

Litéraux typés (Spark 2.2)

Spark 2.2 introduit typedLit, prenant en charge Seq, Map et Tuples :

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

df.withColumn("some_array", typedLit(Seq(1, 2, 3)))
Copier après la connexion

Utilisation de fonctions définies par l'utilisateur (UDF)

Vous pouvez également créer une UDF qui renvoie la valeur constante :

from pyspark.sql import functions as F

def constant_column(value):
    def udf(df):
        return [value for _ in range(df.count())]
    return F.udf(udf)

df.withColumn('constant_column', constant_column(10))
Copier après la connexion

Remarque :

Ces méthodes peuvent également être utilisées pour transmettre des arguments constants aux fonctions UDF ou SQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!