Спарк Версии 2.1Spark: Взорвать пару вложенных столбцов
Я читаю файл в искру dataframe
с следующим форматом:
{
"field1": "value1",
"field2": "value2",
"elements": [{
"id": "1",
"name": "a"
},
{
"id": "2",
"name": "b"
},
{
"id": "3",
"name": "c"
}]
}
Он содержит array
вложенных элементы, теперь я хочу explode
массив elements
, чтобы получить плоскую структуру json. Я использую следующий код:
var dfExploded = df
.withColumn("id",
explode(df.col("elements.id")))
.withColumn("name",
explode(df.col("elements.name")));
кажется, возвращается декартово произведение (например, я получаю 9 элементов в результате в то время как я хочу только 3). Есть ли способ указать пару вложенных столбцов на функцию explode
?
возможно превратить Id + имя в кортеж? –