explode_outer(column)
Описание
Функция explode_outer()
создает новую строку для каждого элемента в массиве или Map-столбце. В отличие от explode()
, сохраняет строки с NULL или пустыми массивами/Map.
Параметры
column
: Column - массив или Map-столбец для развертывания
Возвращаемое значение
Column - развернутый столбец
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import explode_outer
# Создаем SparkSession
spark = SparkSession.builder.appName("explode_outer_example").getOrCreate()
# Создаем DataFrame с массивом
data = [
(1, ["a", "b", "c"]),
(2, ["x", "y"]),
(3, []),
(4, None)
]
df = spark.createDataFrame(data, ["id", "array"])
# Развертываем массив с сохранением пустых значений
result = df.select(
"id",
explode_outer("array").alias("value")
).show()
# Результат:
# +---+-----+
# | id|value|
# +---+-----+
# | 1| a|
# | 1| b|
# | 1| c|
# | 2| x|
# | 2| y|
# | 3| null|
# | 4| null|
# +---+-----+
Примечания
- Сохраняет строки с NULL или пустыми массивами/Map
- Для пропуска строк с пустыми массивами используйте
explode()
- Для развертывания с сохранением позиции элемента используйте
posexplode_outer()
- Для развертывания Map-столбца используйте
explode_outer()
с Map-столбцом