Freigeben über


string_agg

Aggregatfunktion: Gibt die Verkettung von Nicht-NULL-Eingabewerten zurück, getrennt durch das Trennzeichen. Ein Alias von listagg.

Syntax

from pyspark.sql import functions as sf

sf.string_agg(col, delimiter=None)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Zielspalte, für die berechnet werden soll.
delimiter pyspark.sql.Column, str oder bytes, optional Das Trennzeichen zum Trennen der Werte. Der Standardwert ist None.

Rückkehr

pyspark.sql.Column: die Spalte für berechnete Ergebnisse.

Examples

Beispiel 1: Verwenden string_agg-Funktion

from pyspark.sql import functions as sf
df = spark.createDataFrame([('a',), ('b',), (None,), ('c',)], ['strings'])
df.select(sf.string_agg('strings')).show()
+-------------------------+
|string_agg(strings, NULL)|
+-------------------------+
|                      abc|
+-------------------------+

Beispiel 2: Verwenden der string_agg-Funktion mit einem Trennzeichen

from pyspark.sql import functions as sf
df = spark.createDataFrame([('a',), ('b',), (None,), ('c',)], ['strings'])
df.select(sf.string_agg('strings', ', ')).show()
+-----------------------+
|string_agg(strings, , )|
+-----------------------+
|                a, b, c|
+-----------------------+

Beispiel 3: Verwenden string_agg Funktion mit einer binärspalten und Trennzeichen

from pyspark.sql import functions as sf
df = spark.createDataFrame([(b'\x01',), (b'\x02',), (None,), (b'\x03',)], ['bytes'])
df.select(sf.string_agg('bytes', b'\x42')).show()
+------------------------+
|string_agg(bytes, X'42')|
+------------------------+
|        [01 42 02 42 03]|
+------------------------+