【发布时间】:2018-11-08 14:50:57
【问题描述】:
我正在处理一个项目,我正在处理一些具有复杂架构/数据结构的嵌套 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 |
+-------+---------+
【问题讨论】:
标签: scala apache-spark apache-spark-sql