Aller au contenu principal

map_from_arrays

Crée une nouvelle carte à partir de deux tableaux. Cette fonction prend respectivement deux tableaux de clés et de valeurs, et renvoie une nouvelle colonne de carte. Les tableaux d'entrée pour les clés et les valeurs doivent avoir la même longueur et tous les éléments des clés ne doivent pas être nuls. Si ces conditions ne sont pas remplies, une exception sera levée.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.map_from_arrays(col1, col2)

parameter

parameter

Type

Description

col1

pyspark.sql.Column ou str

Nom de la colonne contenant un ensemble de clés. Tous les éléments ne doivent pas être nuls.

col2

pyspark.sql.Column ou str

Nom de la colonne contenant un ensemble de valeurs.

parameter

Type

Description

col1

pyspark.sql.Column ou str

Nom de la colonne contenant un ensemble de clés. Tous les éléments ne doivent pas être nuls.

col2

pyspark.sql.Column ou str

Nom de la colonne contenant un ensemble de valeurs.

Renvoie

pyspark.sql.Column: Une colonne de type map.

Exemples

Exemple 1 : Utilisation de base de map_from_arrays

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([2, 5], ['a', 'b'])], ['k', 'v'])
df.select(sf.map_from_arrays(df.k, df.v)).show()
Output
+---------------------+
|map_from_arrays(k, v)|
+---------------------+
| {2 -> a, 5 -> b}|
+---------------------+

Exemple 2 : map_from_arrays avec des valeurs nulles

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2], ['a', None])], ['k', 'v'])
df.select(sf.map_from_arrays(df.k, df.v)).show()
Output
+---------------------+
|map_from_arrays(k, v)|
+---------------------+
| {1 -> a, 2 -> NULL}|
+---------------------+

Exemple 3 : map_from_arrays avec des tableaux vides

Python
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, IntegerType, StructType, StructField
schema = StructType([
StructField('k', ArrayType(IntegerType())),
StructField('v', ArrayType(StringType()))
])
df = spark.createDataFrame([([], [])], schema=schema)
df.select(sf.map_from_arrays(df.k, df.v)).show()
Output
+---------------------+
|map_from_arrays(k, v)|
+---------------------+
| {}|
+---------------------+