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 |
|---|---|---|
|
| 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}|
+---------------------------+