web-dev-qa-db-fra.com

Ajout d'une colonne de valeur constante à spark dataframe

J'utilise Spark version 2.1 dans Databricks. J'ai un bloc de données nommé wamp auquel je veux ajouter une colonne nommée region qui devrait prendre la constante valeur NE. Cependant, je reçois une erreur disant NameError: name 'lit' is not defined lorsque j'exécute la commande suivante:

wamp = wamp.withColumn('region', lit('NE'))

Qu'est-ce que je fais mal?

6
Gaurav Bansal

vous devez importer lit

soit

from pyspark.sql.functions import *

rendra lit disponible

ou quelque chose comme

import pyspark.sql.functions as sf
wamp = wamp.withColumn('region', sf.lit('NE'))
16
muon

muon @ a fourni la bonne réponse ci-dessus. Ajout d'une version reproductible rapide pour augmenter la clarté.

>>> from pyspark.sql.functions import lit
>>> df = spark.createDataFrame([(1, 4, 3)], ['a', 'b', 'c'])
>>> df.show()
+---+---+---+
|  a|  b|  c|
+---+---+---+
|  1|  4|  3|
+---+---+---+

>>> df = df.withColumn("d", lit(5))
>>> df.show()
+---+---+---+---+
|  a|  b|  c|  d|
+---+---+---+---+
|  1|  4|  3|  5|
+---+---+---+---+
2
Joarder Kamal