Я работаю над проектом и имею дело с некоторыми вложенными датами JSON со сложной схемой / структурой данных.По сути, я хочу отфильтровать один из столбцов в кадре данных, чтобы я выбрал последний элемент в массиве.Я полностью застрял на том, как это сделать.Я надеюсь, что это имеет смысл.
Ниже приведен пример того, чего я пытаюсь достичь:
val singersDF = Seq(
("beatles", "help,hey,jude"),
("romeo", "eres,mia"),
("elvis", "this,is,an,example")
).toDF("name", "hit_songs")
val actualDF = singersDF.withColumn(
"hit_songs",
split(col("hit_songs"), "\\,")
)
actualDF.show(false)
actualDF.printSchema()
+-------+-----------------------+
|name |hit_songs |
+-------+-----------------------+
|beatles|[help, hey, jude] |
|romeo |[eres, mia] |
|elvis |[this, is, an, example]|
+-------+-----------------------+
root
|-- name: string (nullable = true)
|-- hit_songs: array (nullable = true)
| |-- element: string (containsNull = true)
Конечной целью для вывода будет следующее, чтобы выбрать последний "строка "в массиве hit_songs.
Меня не волнует, как будет выглядеть схема впоследствии.
+-------+---------+
|name |hit_songs|
+-------+---------+
|beatles|jude |
|romeo |mia |
|elvis |example |
+-------+---------+