Heim >Backend-Entwicklung >Python-Tutorial >Wie füge ich eine konstante Spalte zu einem Spark-DataFrame hinzu?
Erstellen einer konstanten Spalte in einem Spark-DataFrame
Hinzufügen einer konstanten Spalte zu einem Spark-DataFrame mit einem beliebigen Wert, der für alle Zeilen gelten kann auf verschiedene Weise erreicht werden. Die für diesen Zweck vorgesehene Methode withColumn kann zu Fehlern führen, wenn versucht wird, einen direkten Wert als zweites Argument bereitzustellen.
Verwendung von Literalwerten (Spark 1.3)
Um dieses Problem zu beheben, verwenden Sie lit, um eine wörtliche Darstellung des gewünschten Werts zu erstellen:
from pyspark.sql.functions import lit df.withColumn('new_column', lit(10))
Erstellen komplexer Spalten (Spark 1.4)
Für komplexere Spaltentypen B. Arrays, Strukturen oder Karten, verwenden Sie die entsprechenden Funktionen:
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)))
Typisierte Literale (Spark 2.2)
Spark 2.2 führt typedLit ein und bietet Unterstützung für Seq, Map und Tupel:
import org.apache.spark.sql.functions.typedLit df.withColumn("some_array", typedLit(Seq(1, 2, 3)))
Verwendung benutzerdefinierter Funktionen (UDFs)
Alternativ können Sie eine UDF erstellen, die den konstanten Wert zurückgibt:
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))
Hinweis:
Diese Methoden können auch verwendet werden, um konstante Argumente an UDFs oder SQL-Funktionen zu übergeben.
Das obige ist der detaillierte Inhalt vonWie füge ich eine konstante Spalte zu einem Spark-DataFrame hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!