Maison > développement back-end > Tutoriel Python > Comment ajouter des colonnes constantes dans Spark DataFrames ?

Comment ajouter des colonnes constantes dans Spark DataFrames ?

Susan Sarandon
Libérer: 2024-11-06 22:55:02
original
492 Les gens l'ont consulté

How to Add Constant Columns in Spark DataFrames?

Ajout de colonnes constantes dans les DataFrames Spark

Dans Spark, l'ajout d'une colonne constante à un DataFrame avec une valeur spécifique pour chaque ligne peut être réalisé en utilisant différentes méthodes.

lit et autres fonctions (Spark 1.3)

Dans les versions Spark 1.3 et supérieures, la fonction lit est utilisée pour créer une valeur littérale, qui peut être utilisée comme deuxième argument de DataFrame.withColumn pour ajouter une colonne constante :

from pyspark.sql.functions import lit

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

Pour les colonnes plus complexes, des fonctions telles que array, map et struct peuvent être utilisées pour créer les valeurs de colonne souhaitées :

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)))
Copier après la connexion

typedLit (Spark 2.2)

Spark 2.2 introduit la fonction typedLit, qui prend en charge la fourniture de Seq, Map et Tuples comme constantes :

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)))
Copier après la connexion

Utilisation d'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 d'utiliser cette UDF pour ajouter la colonne :

from pyspark.sql.functions import udf, lit

def add_ten(row):
    return 10

add_ten_udf = udf(add_ten, IntegerType())
df.withColumn('new_column', add_ten_udf(lit(1.0)))
Copier après la connexion

Remarque :

Les valeurs constantes peuvent également être transmises comme arguments aux fonctions UDF ou SQL en utilisant les mêmes constructions.

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