メインコンテンツまでスキップ

配列からのマップ

2 つの配列から新しいマップを作成します。この関数は、キーと値の 2 つの配列をそれぞれ受け取り、新しいマップ列を返します。キーと値の入力配列の長さは同じである必要があり、キー内のすべての要素は null であってはなりません。これらの条件が満たされない場合、例外がスローされます。

構文

Python
from pyspark.sql import functions as sf

sf.map_from_arrays(col1, col2)

パラメーター

パラメーター

Type

説明

col1

pyspark.sql.Column または文字列

キーのセットを含む列の名前。すべての要素が null であってはなりません。

col2

pyspark.sql.Column または文字列

値のセットを含む列の名前。

戻り値

pyspark.sql.Column: マップ タイプの列。

例1 : 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}|
+---------------------+

例2 : null値を持つmap_from_arrays

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

例3 : 空の配列を使用したmap_from_arrays

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