Compartir a través de


create_map

Crea una nueva columna de mapa a partir de un número par de columnas de entrada o columnas de referencia. Las columnas de entrada se agrupan en pares clave-valor para formar un mapa. Por ejemplo, la entrada (key1, value1, key2, value2, ...) generaría un mapa que asocia key1 con value1, key2 con value2, etc. La función también admite la agrupación de columnas como una lista.

Syntax

from pyspark.sql import functions as sf

sf.create_map(*cols)

Parámetros

Parámetro Tipo Description
cols pyspark.sql.Column o str Los nombres de columna de entrada o los objetos Column agrupados en pares clave-valor. También se pueden expresar como una lista de columnas.

Devoluciones

pyspark.sql.Column: una nueva columna de tipo de mapa, donde cada valor es un mapa formado a partir de los pares clave-valor correspondientes proporcionados en los argumentos de entrada.

Examples

Ejemplo 1: Uso básico de create_map función.

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

Ejemplo 2: Uso de create_map función con una lista de columnas.

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

Ejemplo 3: Uso de create_map función con más de un par clave-valor.

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

Ejemplo 4: Uso de create_map función con valores de diferentes tipos.

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