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