Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Разделяет вариантный объект или массив на несколько строк, содержащих его поля или элементы. Его результатом является struct<pos int, key string, value variant>схема.
pos — это позиция поля или элемента в родительском объекте или массиве и value является значением поля или элемента.
key — это имя поля при взрыве объекта variant или значение NULL при взрыве массива вариантов. В отличие от variant_explode, если данный вариант не является вариантным массивом или объектом, включая SQL NULL, variant null и любые другие значения вариантов, создается значение NULL.
Синтаксис
spark.tvf.variant_explode_outer(input)
Параметры
| Параметр | Тип | Description |
|---|---|---|
input |
pyspark.sql.Column |
Входной столбец значений для взрыва. |
Примеры
Пример 1. Использование variant_explode_outer с массивом вариантов
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('["hello", "world"]'))).show()
+---+----+-------+
|pos| key| value|
+---+----+-------+
| 0|NULL|"hello"|
| 1|NULL|"world"|
+---+----+-------+
Пример 2. Использование variant_explode_outer с пустым массивом вариантов
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('[]'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+
Пример 3. Использование variant_explode_outer с вариантным объектом
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{"a": true, "b": 3.14}'))).show()
+---+---+-----+
|pos|key|value|
+---+---+-----+
| 0| a| true|
| 1| b| 3.14|
+---+---+-----+
Пример 4. Использование variant_explode_outer с пустым объектом variant
from pyspark.sql import functions as sf
spark.tvf.variant_explode_outer(sf.parse_json(sf.lit('{}'))).show()
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+