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
from pyspark.sql import functions as sf
sf.map_from_arrays(col1, col2)
parameter
parameter | Type | Description |
|---|---|---|
|
| Nom de la colonne contenant un ensemble de clés. Tous les éléments ne doivent pas être nuls. |
|
| 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
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()
+---------------------+
|map_from_arrays(k, v)|
+---------------------+
| {2 -> a, 5 -> b}|
+---------------------+
Exemple 2 : map_from_arrays avec des valeurs nulles
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()
+---------------------+
|map_from_arrays(k, v)|
+---------------------+
| {1 -> a, 2 -> NULL}|
+---------------------+
Exemple 3 : map_from_arrays avec des tableaux vides
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()
+---------------------+
|map_from_arrays(k, v)|
+---------------------+
| {}|
+---------------------+