Erstellen einer konstanten Spalte in einem Spark DataFrame
Hinzufügen einer konstanten Spalte zu einem Spark DataFrame mit einem willkürlichen Wert, der auf alle Reihen gilt. Die zu diesem Zweck beabsichtigte WithColumn -Methode kann zu Fehlern führen, wenn er versucht, einen direkten Wert als zweites Argument anzugeben. df.withColumn('new_column', lit(10))
Creating Complex Columns (Spark 1.4 )
For more complex column types, such as arrays, structs, or maps, use the appropriate functions:
from pyspark.sql.functions import lit df.withColumn('new_column', lit(10))
typisierte Literale (Spark 2.2)
Spark 2.2 Einführung typedLit, Unterstützung für Seq, Map und TUPLE:
. org.apache.spark.sql.functions.typedLit df.withcolumn ("son_array", typedlit (seq (1, 2, 3))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)))
mit benutzerdefinierten Funktionen (udfs)
Alternativ erstellen Sie eine udf, die das konstante Wert zurückgibt. Def Constant_Column (Wert): Def UDF (DF): Rückgabe [Wert für _ im Bereich (df.count ())] Rückgabe f.Udf (UDF) df.withcolumn ('constant_column', constant_column (10))
import org.apache.spark.sql.functions.typedLit df.withColumn("some_array", typedLit(Seq(1, 2, 3)))
Diese Methoden können auch verwendet werden, um konstante Argumente an UDFs oder SQL -Funktionen weiterzugeben.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3