Поделиться через


TableValuedFunction.взрыв

Возвращает DataFrame, содержащий новую строку для каждого элемента в переданном массиве или карте. Использует имя col столбца по умолчанию для элементов в массиве и keyvalue для элементов в карте, если не указано иное.

Синтаксис

spark.tvf.explode(collection)

Параметры

Параметр Тип Description
collection pyspark.sql.Column Целевой столбец для работы.

Возвраты

pyspark.sql.DataFrame: Кадр данных с новой строкой для каждого элемента.

Примеры

Пример 1. Взрыв столбца массива

import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).show()
+---+
|col|
+---+
|  1|
|  2|
|  3|
+---+

Пример 2. Взрыв столбца карты

import pyspark.sql.functions as sf
spark.tvf.explode(
    sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).show()
+---+-----+
|key|value|
+---+-----+
|  a|    b|
|  c|    d|
+---+-----+

Пример 3. Взрыв массива столбца структуры

import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(
    sf.named_struct(sf.lit("a"), sf.lit(1), sf.lit("b"), sf.lit(2)),
    sf.named_struct(sf.lit("a"), sf.lit(3), sf.lit("b"), sf.lit(4))
)).select("col.*").show()
+---+---+
|  a|  b|
+---+---+
|  1|  2|
|  3|  4|
+---+---+

Пример 4. Взрыв пустого столбца массива

import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+

Пример 5. Взрыв пустого столбца карты

import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+