返回一个无序数组,其中包含映射的值。
Syntax
from pyspark.sql import functions as sf
sf.map_values(col)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或 str |
列或表达式的名称 |
退货
pyspark.sql.Column:映射作为数组的值。
例子
示例 1:从简单映射中提取值
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()
+----------------------------------+
|sort_array(map_values(data), true)|
+----------------------------------+
| [a, b]|
+----------------------------------+
示例 2:从具有复杂值的映射中提取值
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()
+----------------------------------+
|sort_array(map_values(data), true)|
+----------------------------------+
| [[a, b], [c, d]]|
+----------------------------------+
示例 3:使用 null 值从映射中提取值
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()
+----------------------------------+
|sort_array(map_values(data), true)|
+----------------------------------+
| [NULL, b]|
+----------------------------------+
示例 4:从具有重复值的映射中提取值
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()
+----------------+
|map_values(data)|
+----------------+
| [a, a]|
+----------------+
示例 5:从空映射中提取值
from pyspark.sql import functions as sf
df = spark.sql("SELECT map() as data")
df.select(sf.map_values("data")).show()
+----------------+
|map_values(data)|
+----------------+
| []|
+----------------+