Compartir a través de


map_from_arrays

Crea un nuevo mapa a partir de dos matrices. Esta función toma dos matrices de claves y valores respectivamente y devuelve una nueva columna de mapa. Las matrices de entrada para las claves y los valores deben tener la misma longitud y todos los elementos de las claves no deben ser NULL. Si no se cumplen estas condiciones, se producirá una excepción.

Syntax

from pyspark.sql import functions as sf

sf.map_from_arrays(col1, col2)

Parámetros

Parámetro Tipo Description
col1 pyspark.sql.Column o str Nombre de la columna que contiene un conjunto de claves. Todos los elementos no deben ser NULL.
col2 pyspark.sql.Column o str Nombre de la columna que contiene un conjunto de valores.

Devoluciones

pyspark.sql.Column: una columna de tipo de mapa.

Examples

Ejemplo 1: Uso básico 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}|
+---------------------+

Ejemplo 2: map_from_arrays con valores NULL

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

Ejemplo 3: map_from_arrays con matrices vacías

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