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 |
|---|---|---|
|
| Nome da coluna que contém um conjunto de chaves. Nem todos os elementos devem ser nulos. |
|
| 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)|
+---------------------+
| {}|
+---------------------+