Pular para o conteúdo principal

criar_mapa

Cria uma nova coluna de mapa a partir de um número par de colunas de entrada ou referências de colunas. As colunas de entrada são agrupadas em pares key-valor para formar um mapa. Por exemplo, a entrada (chave1, valor1, chave2, valor2, ...) produziria um mapa que associa chave1 a valor1, chave2 a valor2 e assim por diante. A função também permite agrupar colunas como uma lista.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.create_map(*cols)

Parâmetros

Parâmetro

Tipo

Descrição

cols

pyspark.sql.Column ou str

Os nomes das colunas de entrada ou objetos Column agrupados em pares key-valor. Essas informações também podem ser expressas como uma lista de colunas.

Parâmetro

Tipo

Descrição

cols

pyspark.sql.Column ou str

Os nomes das colunas de entrada ou objetos Column agrupados em pares key-valor. Essas informações também podem ser expressas como uma lista de colunas.

Devoluções

pyspark.sql.ColumnUma nova coluna do tipo Mapa, onde cada valor é um mapa formado a partir do par key-valor correspondente fornecido nos argumentos de entrada.

Exemplos

Exemplo 1 : Uso básico da função create_map.

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map('name', 'age')).show()
Output
+--------------+
|map(name, age)|
+--------------+
| {Alice -> 2}|
| {Bob -> 5}|
+--------------+

Exemplo 2 : Utilização da função create_map com uma lista de colunas.

Python
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()
Output
+--------------+
|map(name, age)|
+--------------+
| {Alice -> 2}|
| {Bob -> 5}|
+--------------+

Exemplo 3 : Utilização da função create_map com mais de um par key-valor.

Python
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)
Output
+---------------------------------+
|map(name, name, gender, gender) |
+---------------------------------+
|{name -> Alice, gender -> female}|
|{name -> Bob, gender -> male} |
+---------------------------------+

Exemplo 4 : Utilização da função create_map com valores de tipos diferentes.

Python
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)
Output
+-----------------------------+
|map(age, age, weight, weight)|
+-----------------------------+
|{age -> 2.0, weight -> 22.2} |
|{age -> 5.0, weight -> 36.1} |
+-----------------------------+