Heim >Backend-Entwicklung >Python-Tutorial >Wie füge ich konstante Spalten in Spark DataFrames hinzu?

Wie füge ich konstante Spalten in Spark DataFrames hinzu?

Susan Sarandon
Susan SarandonOriginal
2024-11-06 22:55:02490Durchsuche

How to Add Constant Columns in Spark DataFrames?

Hinzufügen konstanter Spalten in Spark-DataFrames

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.

lit und andere Funktionen (Spark 1.3)

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)))

typedLit (Spark 2.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)))

Verwendung einer UDF

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn