Udostępnij przez


map_from_entries

Przekształca tablicę wpisów par klucz-wartość (struktury z dwoma polami) na mapę. Pierwsze pole każdego wpisu jest używane jako klucz, a drugie pole jako wartość w wynikowej kolumnie mapy.

Składnia

from pyspark.sql import functions as sf

sf.map_from_entries(col)

Parametry

Parameter Typ Description
col pyspark.sql.Column lub str Nazwa kolumny lub wyrażenia

Zwraca

pyspark.sql.Column: mapa utworzona na podstawie danej tablicy wpisów.

Przykłady

Przykład 1. Podstawowe użycie map_from_entries

from pyspark.sql import functions as sf
df = spark.sql("SELECT array(struct(1, 'a'), struct(2, 'b')) as data")
df.select(sf.map_from_entries(df.data)).show()
+----------------------+
|map_from_entries(data)|
+----------------------+
|      {1 -> a, 2 -> b}|
+----------------------+

Przykład 2: map_from_entries z wartościami null

from pyspark.sql import functions as sf
df = spark.sql("SELECT array(struct(1, null), struct(2, 'b')) as data")
df.select(sf.map_from_entries(df.data)).show()
+----------------------+
|map_from_entries(data)|
+----------------------+
|   {1 -> NULL, 2 -> b}|
+----------------------+

Przykład 3: map_from_entries z ramką danych

from pyspark.sql import Row, functions as sf
df = spark.createDataFrame([([Row(1, "a"), Row(2, "b")],), ([Row(3, "c")],)], ['data'])
df.select(sf.map_from_entries(df.data)).show()
+----------------------+
|map_from_entries(data)|
+----------------------+
|      {1 -> a, 2 -> b}|
|              {3 -> c}|
+----------------------+

Przykład 4: map_from_entries z pustą tablicą

from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, IntegerType, StructType, StructField
schema = StructType([
  StructField("data", ArrayType(
    StructType([
      StructField("key", IntegerType()),
      StructField("value", StringType())
    ])
  ), True)
])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.map_from_entries(df.data)).show()
+----------------------+
|map_from_entries(data)|
+----------------------+
|                    {}|
+----------------------+