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
Libérer: 2024-11-08 15:04:01
original
306 Les gens l'ont consulté

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

Étincelle 1.3 :

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

from pyspark.sql.functions import lit

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

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

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

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

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!

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