map_from_entries

Anahtar-değer çifti girdilerinden oluşan bir diziyi (iki alanlı yapılar) bir eşlem haline dönüştürür. Her girdinin ilk alanı anahtar, ikinci alan ise sonuçta elde edilen eşleme sütunundaki değer olarak kullanılır.

Sözdizimi

from pyspark.sql import functions as sf

sf.map_from_entries(col)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya str Sütun veya ifadenin adı

İade

pyspark.sql.Column: Verilen girdi dizisinden oluşturulan bir eşleme.

Örnekler

Örnek 1: map_from_entries temel kullanımı

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

Örnek 2: null değerlerle map_from_entries

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

Örnek 3: DataFrame ile map_from_entries

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

Örnek 4: boş dizi ile map_from_entries

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