Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает неупорядоченный массив, содержащий значения карты.
Синтаксис
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)|
+----------------+
| []|
+----------------+