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

マップ値

マップの値を含む順序付けられていない配列を返します。

構文

Python
from pyspark.sql import functions as sf

sf.map_values(col)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または文字列

列または式の名前

戻り値

pyspark.sql.Column: マップの値を配列として表します。

例1 : 単純なマップから値を抽出する

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'b') as data")
df.select(sf.sort_array(sf.map_values("data"))).show()
Output
+----------------------------------+
|sort_array(map_values(data), true)|
+----------------------------------+
| [a, b]|
+----------------------------------+

例2 : 複雑な値を持つマップから値を抽出する

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, array('a', 'b'), 2, array('c', 'd')) as data")
df.select(sf.sort_array(sf.map_values("data"))).show()
Output
+----------------------------------+
|sort_array(map_values(data), true)|
+----------------------------------+
| [[a, b], [c, d]]|
+----------------------------------+

例3 : null値を含むマップから値を抽出する

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, null, 2, 'b') as data")
df.select(sf.sort_array(sf.map_values("data"))).show()
Output
+----------------------------------+
|sort_array(map_values(data), true)|
+----------------------------------+
| [NULL, b]|
+----------------------------------+

例4 : 重複した値を持つマップから値を抽出する

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map(1, 'a', 2, 'a') as data")
df.select(sf.map_values("data")).show()
Output
+----------------+
|map_values(data)|
+----------------+
| [a, a]|
+----------------+

例5 : 空のマップから値を抽出する

Python
from pyspark.sql import functions as sf
df = spark.sql("SELECT map() as data")
df.select(sf.map_values("data")).show()
Output
+----------------+
|map_values(data)|
+----------------+
| []|
+----------------+