次の方法で共有


create_map

偶数の入力列または列参照から新しいマップ列を作成します。 入力列は、マップを形成するためにキーと値のペアにグループ化されます。 たとえば、入力 (key1、value1、key2、value2、...) では、key1 と value1、key2 と value2 などを関連付けるマップが生成されます。 この関数では、列をリストとしてグループ化することもできます。

構文

from pyspark.sql import functions as sf

sf.create_map(*cols)

パラメーター

パラメーター タイプ Description
cols pyspark.sql.Column または str キーと値のペアにグループ化された入力列名または Column オブジェクト。 これらは、列の一覧として表すこともできます。

返品ポリシー

pyspark.sql.Column: Map 型の新しい列。各値は、入力引数で指定された対応するキーと値のペアから形成されたマップです。

例示

例 1: create_map関数の基本的な使用方法。

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map('name', 'age')).show()
+--------------+
|map(name, age)|
+--------------+
|  {Alice -> 2}|
|    {Bob -> 5}|
+--------------+

例 2: 列のリストcreate_map関数の使用法。

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()
+--------------+
|map(name, age)|
+--------------+
|  {Alice -> 2}|
|    {Bob -> 5}|
+--------------+

例 3: 複数のキーと値のペアを持つcreate_map関数の使用法。

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)
+---------------------------------+
|map(name, name, gender, gender)  |
+---------------------------------+
|{name -> Alice, gender -> female}|
|{name -> Bob, gender -> male}    |
+---------------------------------+

例 4: 異なる型の値create_map関数の使用法。

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)
+-----------------------------+
|map(age, age, weight, weight)|
+-----------------------------+
|{age -> 2.0, weight -> 22.2} |
|{age -> 5.0, weight -> 36.1} |
+-----------------------------+