inline(column)
Описание
Функция inline()
развертывает массив структур в отдельные строки. Каждая структура в массиве становится отдельной строкой с полями структуры в качестве столбцов. Если массив пустой или NULL, строка будет пропущена.
Параметры
column
: Column - массив структур для развертывания
Возвращаемое значение
StructType - развернутые поля структуры
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import inline
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
# Создаем SparkSession
spark = SparkSession.builder.appName("inline_example").getOrCreate()
# Определяем схему для структуры
schema = StructType([
StructField("name", StringType()),
StructField("age", IntegerType())
])
# Создаем DataFrame с массивом структур
data = [
(1, [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}]),
(2, [{"name": "Charlie", "age": 35}]),
(3, [])
]
df = spark.createDataFrame(data, ["id", "people"])
# Развертываем массив структур
result = df.select(
"id",
inline("people")
).show()
# Результат:
# +---+-------+---+
# | id| name|age|
# +---+-------+---+
# | 1| Alice| 25|
# | 1| Bob| 30|
# | 2|Charlie| 35|
# +---+-------+---+
Примечания
- Если массив пустой или NULL, строка будет пропущена
- Для сохранения строк с пустыми массивами используйте
inline_outer()
- Для развертывания простых массивов используйте
explode()
- Для развертывания Map-столбцов используйте
explode()