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

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

DDD
DDDOriginal
2024-11-08 20:22:02466Durchsuche

How do I add constant columns to Spark DataFrames?

Hinzufügen von konstanten Spalten zu Spark-DataFrames

Bei der Arbeit mit Spark-DataFrames gibt es Szenarien, in denen man möglicherweise eine konstante Spalte mit a hinzufügen muss Fester Wert für jede Zeile. Ein häufiger Fehler besteht jedoch darin, withColumn direkt zu verwenden, was zum Hinzufügen berechneter Spalten gedacht ist.

Fehler mit withColumn

Wenn Sie versuchen, eine konstante Spalte direkt mit hinzuzufügen withColumn wird ein Fehler ähnlich dem folgenden auftreten:

AttributeError: 'int' object has no attribute 'alias'

Dies liegt daran, dass withColumn als zweites ein Column-Objekt erwartet Argument, das einen berechneten Ausdruck darstellt. Ein konstanter Wert, beispielsweise eine ganze Zahl, ist keine Spalte.

Lösung

Um eine konstante Spalte korrekt hinzuzufügen, verwenden Sie die lit-Funktion, um einen Literalwert zu erstellen. Diese Funktion verwendet den konstanten Wert als Argument und gibt ein Spaltenobjekt zurück:

from pyspark.sql.functions import lit
df.withColumn('new_column', lit(10))

Komplexe Spalten

Für komplexere konstante Werte wie Arrays oder Strukturen können Sie Folgendes verwenden Funktionen:

  • Array
  • Struktur
  • create_map

Beispiel:

from pyspark.sql.functions import array, struct, create_map

df.withColumn("some_array", array(lit(1), lit(2), lit(3)))
df.withColumn("some_struct", struct(lit("foo"), lit(1), lit(.3)))
df.withColumn("some_map", create_map(lit("key1"), lit(1), lit("key2"), lit(2)))

Alternative Ansätze

In Spark-Versionen 2.2 und höher kann die typedLit-Funktion auch verwendet werden, um konstante Spalten für unterstützte Datentypen wie Sequenzen, Karten und Tupel zu erstellen.

Eine weitere Alternative ist um eine UDF zu verwenden, obwohl dies langsamer ist als die Verwendung der oben genannten integrierten Funktionen.

Das obige ist der detaillierte Inhalt vonWie füge ich konstante Spalten zu 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