Aller au contenu principal

map_concat

Renvoie l’union de toutes les cartes données. Pour les clés en double dans les cartes d'entrée, la gestion est régie par spark.sql.mapKeyDedupPolicy. Par default, il génère une exception. S'il est défini sur LAST_WIN, il utilise la valeur du dernier mappage.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.map_concat(*cols)

parameter

parameter

Type

Description

cols

pyspark.sql.Column ou str

Noms de colonne ou Colonne

parameter

Type

Description

cols

pyspark.sql.Column ou str

Noms de colonne ou Colonne

Renvoie

pyspark.sql.Column: Une carte d'entrées Merge à partir d'autres cartes.

Exemples

Exemple 1 : Utilisation de base de map_concat

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'b') as map1, map(3, 'c') as map2")
df.select(sf.map_concat("map1", "map2")).show(truncate=False)
Output
+------------------------+
|map_concat(map1, map2) |
+------------------------+
|{1 -> a, 2 -> b, 3 -> c}|
+------------------------+

Exemple 2 : map_concat avec trois cartes

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a') as map1, map(2, 'b') as map2, map(3, 'c') as map3")
df.select(sf.map_concat("map1", "map2", "map3")).show(truncate=False)
Output
+----------------------------+
|map_concat(map1, map2, map3)|
+----------------------------+
|{1 -> a, 2 -> b, 3 -> c} |
+----------------------------+

Exemple 3 : map_concat avec une carte vide

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'b') as map1, map() as map2")
df.select(sf.map_concat("map1", "map2")).show(truncate=False)
Output
+----------------------+
|map_concat(map1, map2)|
+----------------------+
|{1 -> a, 2 -> b} |
+----------------------+

**Exemple 4** : map_concat avec des valeurs null

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'b') as map1, map(3, null) as map2")
df.select(sf.map_concat("map1", "map2")).show(truncate=False)
Output
+---------------------------+
|map_concat(map1, map2) |
+---------------------------+
|{1 -> a, 2 -> b, 3 -> NULL}|
+---------------------------+