マップを作成する
偶数個の入力列または列参照から新しいマップ列を作成します。入力列はキーと値のペアにグループ化され、マップを形成します。たとえば、入力 (key1、value1、key2、value2、...) は、key1 を value1 に、key2 を value2 に、などと関連付けるマップを生成します。この関数は、列をリストとしてグループ化することもサポートします。
構文
Python
from pyspark.sql import functions as sf
sf.create_map(*cols)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| キーと値のペアにグループ化された入力列名または列オブジェクト。これらは列のリストとして表現することもできます。 |
戻り値
pyspark.sql.Column: マップ タイプの新しい列。各値は、入力引数で提供される対応するキーと値のペアから形成されたマップです。
例
例 1 : create_map 関数の基本的な使用方法。
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map('name', 'age')).show()
Output
+--------------+
|map(name, age)|
+--------------+
| {Alice -> 2}|
| {Bob -> 5}|
+--------------+
例 2 : 列のリストを使用した create_map 関数の使用。
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map([df.name, df.age])).show()
Output
+--------------+
|map(name, age)|
+--------------+
| {Alice -> 2}|
| {Bob -> 5}|
+--------------+
例 3 : 複数のキーと値のペアを持つ create_map 関数の使用。
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2, "female"),
("Bob", 5, "male")], ("name", "age", "gender"))
df.select(sf.create_map(sf.lit('name'), df['name'],
sf.lit('gender'), df['gender'])).show(truncate=False)
Output
+---------------------------------+
|map(name, name, gender, gender) |
+---------------------------------+
|{name -> Alice, gender -> female}|
|{name -> Bob, gender -> male} |
+---------------------------------+
例 4 : 異なる型の値を持つ create_map 関数の使用。
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2, 22.2),
("Bob", 5, 36.1)], ("name", "age", "weight"))
df.select(sf.create_map(sf.lit('age'), df['age'],
sf.lit('weight'), df['weight'])).show(truncate=False)
Output
+-----------------------------+
|map(age, age, weight, weight)|
+-----------------------------+
|{age -> 2.0, weight -> 22.2} |
|{age -> 5.0, weight -> 36.1} |
+-----------------------------+