Pular para o conteúdo principal

mapear_a_arrays

Cria um novo mapa a partir de duas matrizes. Essa função recebe duas matrizes, uma contendo a chave e outra os valores, e retorna uma nova coluna no mapa. Os arrays de entrada para chave e valores devem ter o mesmo comprimento e todos os elementos em chave não devem ser nulos. Caso essas condições não sejam atendidas, uma exceção será lançada.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.map_from_arrays(col1, col2)

Parâmetros

Parâmetro

Tipo

Descrição

col1

pyspark.sql.Column ou str

Nome da coluna que contém um conjunto de chaves. Nem todos os elementos devem ser nulos.

col2

pyspark.sql.Column ou str

Nome da coluna que contém um conjunto de valores.

Devoluções

pyspark.sql.Column: Uma coluna do tipo mapa.

Exemplos

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

Exemplo 2 : map_from_arrays com valores nulos

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

Exemplo 3 : map_from_arrays com arrays vazios

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