You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark数据框展开数组后,如何自定义展开列的列名?

解决Spark DataFrame数组列展开并重命名列的问题

你已经成功用explode函数把数组列展开成多行数据了,只需要给展开后的列加上别名,就能把默认的col改成你想要的employee啦,这里有两种简单的实现方式:

方式一:使用alias()方法

直接在explode调用后链式调用alias()指定列名:

df.select($"person", explode($"employees").alias("employee")).show()

方式二:使用as()方法

as()和alias()的作用完全一致,也是用来给列重命名:

df.select($"person", explode($"employees").as("employee")).show()

运行上面任意一段代码后,你就能得到期望的结果:

+------+--------+
|person|employee|
+------+--------+
|  Mary|       1|
|  Mary|       2|
|  Mary|       3|
|  John|       4|
|  John|       5|
|  John|       6|
+------+--------+

额外小技巧:用SQL语法实现

如果你更习惯写SQL语句,也可以先把DataFrame注册成临时视图,再通过SQL完成展开和重命名:

df.createOrReplaceTempView("people")
spark.sql("SELECT person, explode(employees) AS employee FROM people").show()

内容的提问来源于stack exchange,提问作者user152468

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:28:01