map_from_arrays

İki diziyle yeni bir harita oluşturur. Bu işlev sırasıyla iki anahtar ve değer dizisi alır ve yeni bir eşleme sütunu döndürür. Anahtarlar ve değerler için giriş dizileri aynı uzunlukta olmalı ve anahtarlardaki tüm öğeler null olmamalıdır. Bu koşullar karşılanmazsa bir özel durum oluşturulur.

Sözdizimi

from pyspark.sql import functions as sf

sf.map_from_arrays(col1, col2)

Parametreler

Parametre Türü Description
col1 pyspark.sql.Column veya str Anahtar kümesini içeren sütunun adı. Tüm öğeler null olmamalıdır.
col2 pyspark.sql.Column veya str Değer kümesi içeren sütunun adı.

İade

pyspark.sql.Column: Harita türünde bir sütun.

Örnekler

Örnek 1: map_from_arrays temel kullanımı

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

Örnek 2: null değerlerle map_from_arrays

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

Örnek 3: Boş dizilerle map_from_arrays

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