指定されたすべてのマップの和集合を返します。 入力マップ内の重複するキーの場合、処理は spark.sql.mapKeyDedupPolicyによって制御されます。 既定では、例外がスローされます。
LAST_WINに設定すると、最後のマップの値が使用されます。
構文
from pyspark.sql import functions as sf
sf.map_concat(*cols)
パラメーター
| パラメーター | タイプ | Description |
|---|---|---|
cols |
pyspark.sql.Column または str |
列名または列 |
返品ポリシー
pyspark.sql.Column:他のマップからマージされたエントリのマップ。
例示
例 1: map_concatの基本的な使用方法
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'b') as map1, map(3, 'c') as map2")
df.select(sf.map_concat("map1", "map2")).show(truncate=False)
+------------------------+
|map_concat(map1, map2) |
+------------------------+
|{1 -> a, 2 -> b, 3 -> c}|
+------------------------+
例 2: 3 つのマップを使用したmap_concat
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a') as map1, map(2, 'b') as map2, map(3, 'c') as map3")
df.select(sf.map_concat("map1", "map2", "map3")).show(truncate=False)
+----------------------------+
|map_concat(map1, map2, map3)|
+----------------------------+
|{1 -> a, 2 -> b, 3 -> c} |
+----------------------------+
例 3: 空のマップを使用したmap_concat
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'b') as map1, map() as map2")
df.select(sf.map_concat("map1", "map2")).show(truncate=False)
+----------------------+
|map_concat(map1, map2)|
+----------------------+
|{1 -> a, 2 -> b} |
+----------------------+
例 4: null 値を持つmap_concat
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'b') as map1, map(3, null) as map2")
df.select(sf.map_concat("map1", "map2")).show(truncate=False)
+---------------------------+
|map_concat(map1, map2) |
+---------------------------+
|{1 -> a, 2 -> b, 3 -> NULL}|
+---------------------------+