Maison >développement back-end >Tutoriel Python >Comment ajouter une colonne constante à un Spark DataFrame ?

Comment ajouter une colonne constante à un Spark DataFrame ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-08 15:04:01280parcourir

How Do I Add a Constant Column to a Spark DataFrame?

Ajout d'une colonne constante à un Spark DataFrame

Lorsque vous tentez d'ajouter une nouvelle colonne à un DataFrame à l'aide de withColumn et d'une valeur constante, les utilisateurs peut rencontrer une erreur en raison de données incompatibles types.

Solution :

Spark 2.2 :

Utilisez typedLit pour attribuer directement des valeurs constantes de différents types :

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

df.withColumn("some_array", typedLit(Seq(1, 2, 3)))

Étincelle 1.3 :

Utilisez lit pour créer une valeur littérale :

from pyspark.sql.functions import lit

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

Spark 1.4 :

Pour les colonnes complexes, utilisez des blocs fonctionnels comme array, struct et create_map :

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

df.withColumn("some_array", array(lit(1), lit(2), lit(3)))

Dans Scala :

import org.apache.spark.sql.functions.{array, lit, map, struct}

df.withColumn("new_column", lit(10))
df.withColumn("map", map(lit("key1"), lit(1), lit("key2"), lit(2)))

Pour les structures, utilisez un alias sur chaque champ ou lancez un cast sur l'objet entier pour fournir des noms :

df.withColumn(
    "some_struct",
    struct(lit("foo").alias("x"), lit(1).alias("y"), lit(0.3).alias("z"))
 )

Remarque :

Ces constructions 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!

Déclaration:
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