créer_une_carte
Crée une nouvelle colonne de carte à partir d'un nombre pair de colonnes d'entrée ou de références de colonne. Les colonnes d'entrée sont groupées en paires clé-valeur pour former une carte. Par exemple, l'entrée (clé1, valeur1, clé2, valeur2, ...) produirait une carte qui associe la clé1 à la valeur1, la clé2 à la valeur2, et ainsi de suite. La fonction prend également en charge le regroupement de colonnes sous forme de liste.
Syntaxe
from pyspark.sql import functions as sf
sf.create_map(*cols)
parameter
parameter | Type | Description |
|---|---|---|
|
| Les noms de colonnes d'entrée ou les objets Column regroupés en paires clé-valeur. Ceux-ci peuvent également être exprimés sous forme de liste de colonnes. |
Renvoie
pyspark.sql.Column: Une nouvelle colonne de type Map, où chaque valeur est une carte formée à partir des paires clé-valeur correspondantes fournies dans les arguments d'entrée.
Exemples
Exemple 1 : Utilisation de base de la fonction create_map.
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map('name', 'age')).show()
+--------------+
|map(name, age)|
+--------------+
| {Alice -> 2}|
| {Bob -> 5}|
+--------------+
Exemple 2 : Utilisation de la fonction create_map avec une liste de colonnes.
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map([df.name, df.age])).show()
+--------------+
|map(name, age)|
+--------------+
| {Alice -> 2}|
| {Bob -> 5}|
+--------------+
Exemple 3 : Utilisation de la fonction create_map avec plus d’une paire clé-valeur.
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2, "female"),
("Bob", 5, "male")], ("name", "age", "gender"))
df.select(sf.create_map(sf.lit('name'), df['name'],
sf.lit('gender'), df['gender'])).show(truncate=False)
+---------------------------------+
|map(name, name, gender, gender) |
+---------------------------------+
|{name -> Alice, gender -> female}|
|{name -> Bob, gender -> male} |
+---------------------------------+
Exemple 4 : Utilisation de la fonction create_map avec des valeurs de différents types.
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2, 22.2),
("Bob", 5, 36.1)], ("name", "age", "weight"))
df.select(sf.create_map(sf.lit('age'), df['age'],
sf.lit('weight'), df['weight'])).show(truncate=False)
+-----------------------------+
|map(age, age, weight, weight)|
+-----------------------------+
|{age -> 2.0, weight -> 22.2} |
|{age -> 5.0, weight -> 36.1} |
+-----------------------------+