Wie füge ich eine konstante Spalte zu einem Spark-DataFrame hinzu?

Linda Hamilton
Freigeben: 2024-11-07 00:31:02
Original
383 Leute haben es durchsucht

How to Add a Constant Column to a Spark DataFrame?

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))
Nach dem Login kopieren

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)))
Nach dem Login kopieren

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)))
Nach dem Login kopieren

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))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!