Heim > Artikel > Backend-Entwicklung > Wie füge ich konstante Spalten in Spark DataFrames hinzu?
In Spark kann das Hinzufügen einer konstanten Spalte zu einem DataFrame mit einem bestimmten Wert für jede Zeile mithilfe verschiedener Methoden erreicht werden.
In Spark-Versionen 1.3 und höher wird die lit-Funktion verwendet, um einen Literalwert zu erstellen, der als zweites Argument zum Hinzufügen von DataFrame.withColumn verwendet werden kann eine konstante Spalte:
from pyspark.sql.functions import lit df.withColumn('new_column', lit(10))
Für komplexere Spalten können Funktionen wie Array, Map und Struktur verwendet werden, um die gewünschten Spaltenwerte zu erstellen:
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)))
Spark 2.2 führt die typedLit-Funktion ein, die die Bereitstellung von Seq, Map und Tupeln als Konstanten unterstützt:
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)))
Als Alternative zur Verwendung von Literalwerten ist es möglich, eine benutzerdefinierte Funktion (UDF) zu erstellen, die einen konstanten Wert für jede Zeile zurückgibt, und diese UDF zum Hinzufügen der Spalte zu verwenden:
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)))
Hinweis:
Die konstanten Werte können mit denselben Konstrukten auch als Argumente an UDFs oder SQL-Funktionen übergeben werden.
Das obige ist der detaillierte Inhalt vonWie füge ich konstante Spalten in Spark DataFrames hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!