Freigeben über


array_append

Gibt eine neue Arrayspalte zurück, indem sie einen Wert an das vorhandene Array anfügen.

Syntax

from pyspark.sql import functions as sf

sf.array_append(col, value)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Der Name der Spalte, die das Array enthält.
value Beliebig Ein Literalwert oder ein Spaltenausdruck, der an das Array angefügt werden soll.

Rückkehr

pyspark.sql.Column: Eine neue Arrayspalte, value die an das ursprüngliche Array angefügt ist.

Examples

Beispiel 1: Anfügen eines Spaltenwerts an eine Arrayspalte

from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([Row(c1=["b", "a", "c"], c2="c")])
df.select(sf.array_append(df.c1, df.c2)).show()
+--------------------+
|array_append(c1, c2)|
+--------------------+
|        [b, a, c, c]|
+--------------------+

Beispiel 2: Anfügen eines numerischen Werts an eine Arrayspalte

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],)], ['data'])
df.select(sf.array_append(df.data, 4)).show()
+---------------------+
|array_append(data, 4)|
+---------------------+
|         [1, 2, 3, 4]|
+---------------------+

Beispiel 3: Anfügen eines NULL-Werts an eine Arrayspalte

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],)], ['data'])
df.select(sf.array_append(df.data, None)).show()
+------------------------+
|array_append(data, NULL)|
+------------------------+
|         [1, 2, 3, NULL]|
+------------------------+

Beispiel 4: Anfügen eines Werts an eine NULL-Arrayspalte

from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, IntegerType, StructType, StructField
schema = StructType([
  StructField("data", ArrayType(IntegerType()), True)
])
df = spark.createDataFrame([(None,)], schema=schema)
df.select(sf.array_append(df.data, 4)).show()
+---------------------+
|array_append(data, 4)|
+---------------------+
|                 NULL|
+---------------------+

Beispiel 5: Anfügen eines Werts an ein leeres Array

from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, IntegerType, StructType, StructField
schema = StructType([
  StructField("data", ArrayType(IntegerType()), True)
])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.array_append(df.data, 1)).show()
+---------------------+
|array_append(data, 1)|
+---------------------+
|                  [1]|
+---------------------+