Aller au contenu principal

string_agg_distinct

Fonction d'agrégation : renvoie la concaténation de valeurs d'entrée distinctes non nulles, séparées par le délimiteur. Un alias de listagg_distinct.

Syntaxe

Python
import pyspark.sql.functions as sf

sf.string_agg_distinct(col=<col>)

# With delimiter
sf.string_agg_distinct(col=<col>, delimiter=<delimiter>)

parameter

parameter

Type

Description

col

pyspark.sql.Column OU str

Colonne cible sur laquelle effectuer le calcul.

delimiter

pyspark.sql.Column, str, ou bytes

Facultatif. Le délimiteur pour séparer les valeurs. La valeur par default est Aucun.

parameter

Type

Description

col

pyspark.sql.Column OU str

Colonne cible sur laquelle effectuer le calcul.

delimiter

pyspark.sql.Column, str, ou bytes

Facultatif. Le délimiteur pour séparer les valeurs. La valeur par default est Aucun.

Renvoie

pyspark.sql.Column: la colonne pour les résultats calculés.

Exemples

Exemple 1 : Utilisation de la fonction string_agg_distinct.

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

Exemple 2 : utilisation de la fonction string_agg_distinct avec un délimiteur.

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

Exemple 3 : Utilisation de la fonction string_agg_distinct avec une colonne binaire et un délimiteur.

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

Exemple 4 : Utilisation de la fonction string_agg_distinct sur une colonne avec toutes les valeurs Null.

Python
import pyspark.sql.functions as sf
from pyspark.sql.types import StructType, StructField, StringType
schema = StructType([StructField("strings", StringType(), True)])
df = spark.createDataFrame([(None,), (None,), (None,), (None,)], schema=schema)
df.select(sf.string_agg_distinct('strings')).show()
Output
+----------------------------------+
|string_agg(DISTINCT strings, NULL)|
+----------------------------------+
| NULL|
+----------------------------------+