map_from_arrays

Vytvoří novou mapu ze dvou polí. Tato funkce přebírá dvě pole klíčů a hodnot a vrací nový sloupec mapy. Vstupní pole pro klíče a hodnoty musí mít stejnou délku a všechny prvky v klíčích nesmí být null. Pokud tyto podmínky nejsou splněny, vyvolá se výjimka.

Syntaxe

from pyspark.sql import functions as sf

sf.map_from_arrays(col1, col2)

Parametry

Parameter Typ Description
col1 pyspark.sql.Column nebo str Název sloupce obsahující sadu klíčů Všechny prvky by neměly být null.
col2 pyspark.sql.Column nebo str Název sloupce obsahující sadu hodnot

Návraty

pyspark.sql.Column: Sloupec typu mapy.

Examples

Příklad 1: Základní použití 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}|
+---------------------+

Příklad 2: map_from_arrays s hodnotami 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}|
+---------------------+

Příklad 3: map_from_arrays s prázdnými poli

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