Aller au contenu principal

map_from_entries

Transforme un tableau d'entrées de paires clés-valeurs (structures avec deux champs) en une map. Le premier champ de chaque entrée est utilisé comme clé et le second champ comme valeur dans la colonne de mappage résultante.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.map_from_entries(col)

parameter

parameter

Type

Description

col

pyspark.sql.Column ou str

Nom de colonne ou d'expression

parameter

Type

Description

col

pyspark.sql.Column ou str

Nom de colonne ou d'expression

Renvoie

pyspark.sql.Column: Une carte créée à partir du tableau d'entrées donné.

Exemples

**Exemple 1** : Utilisation de base de map_from_entries

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT array(struct(1, 'a'), struct(2, 'b')) as data")
df.select(sf.map_from_entries(df.data)).show()
Output
+----------------------+
|map_from_entries(data)|
+----------------------+
| {1 -> a, 2 -> b}|
+----------------------+

Exemple 2 : map_from_entries avec des valeurs nulles

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT array(struct(1, null), struct(2, 'b')) as data")
df.select(sf.map_from_entries(df.data)).show()
Output
+----------------------+
|map_from_entries(data)|
+----------------------+
| {1 -> NULL, 2 -> b}|
+----------------------+

**Exemple 3** : map_from_entries avec un DataFrame

Python
from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([([Row(1, "a"), Row(2, "b")],), ([Row(3, "c")],)], ['data'])
df.select(sf.map_from_entries(df.data)).show()
Output
+----------------------+
|map_from_entries(data)|
+----------------------+
| {1 -> a, 2 -> b}|
| {3 -> c}|
+----------------------+

Exemple 4 : map_from_entries avec tableau vide

Python
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, IntegerType, StructType, StructField
schema = StructType([
StructField("data", ArrayType(
StructType([
StructField("key", IntegerType()),
StructField("value", StringType())
])
), True)
])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.map_from_entries(df.data)).show()
Output
+----------------------+
|map_from_entries(data)|
+----------------------+
| {}|
+----------------------+