配列からのマップ
2 つの配列から新しいマップを作成します。この関数は、キーと値の 2 つの配列をそれぞれ受け取り、新しいマップ列を返します。キーと値の入力配列の長さは同じである必要があり、キー内のすべての要素は null であってはなりません。これらの条件が満たされない場合、例外がスローされます。
構文
Python
from pyspark.sql import functions as sf
sf.map_from_arrays(col1, col2)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| キーのセットを含む列の名前。すべての要素が null であってはなりません。 |
|
| 値のセットを含む列の名前。 |
戻り値
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)|
+---------------------+
| {}|
+---------------------+