Heim >Backend-Entwicklung >Python-Tutorial >Wie füge ich einem Spark-DataFrame eine konstante Spalte hinzu?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-08 15:04:01313Durchsuche

How Do I Add a Constant Column to a Spark DataFrame?

Hinzufügen einer konstanten Spalte zu einem Spark-DataFrame

Beim Versuch, mithilfe von withColumn und einem konstanten Wert eine neue Spalte zu einem DataFrame hinzuzufügen, Benutzer Aufgrund nicht übereinstimmender Datentypen kann ein Fehler auftreten.

Lösung:

Spark 2.2:

Verwenden Sie typedLit für die direkte Zuweisung konstante Werte verschiedener Typen:

import org.apache.spark.sql.functions.typedLit

df.withColumn("some_array", typedLit(Seq(1, 2, 3)))

Spark 1.3 :

Verwenden Sie lit, um einen Literalwert zu erstellen:

from pyspark.sql.functions import lit

df.withColumn('new_column', lit(10))

Spark 1.4:

Verwenden Sie für komplexe Spalten Funktionsblöcke wie Array, struct und create_map:

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

df.withColumn("some_array", array(lit(1), lit(2), lit(3)))

In Scala:

import org.apache.spark.sql.functions.{array, lit, map, struct}

df.withColumn("new_column", lit(10))
df.withColumn("map", map(lit("key1"), lit(1), lit("key2"), lit(2)))

Für Strukturen , verwenden Sie einen Alias ​​für jedes Feld oder übertragen Sie ihn auf das gesamte Objekt, um Namen bereitzustellen:

df.withColumn(
    "some_struct",
    struct(lit("foo").alias("x"), lit(1).alias("y"), lit(0.3).alias("z"))
 )

Hinweis:

Diese Konstrukte können auch verwendet werden, um konstante Argumente an zu übergeben UDFs oder SQL-Funktionen.

Das obige ist der detaillierte Inhalt vonWie füge ich einem Spark-DataFrame eine konstante Spalte 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