【发布时间】:2021-04-13 22:43:03
【问题描述】:
假设我有以下 DataFrame:
scala> val df1 = Seq("a", "b").toDF("id").withColumn("nums", array(lit(1)))
df1: org.apache.spark.sql.DataFrame = [id: string, nums: array<int>]
scala> df1.show()
+---+----+
| id|nums|
+---+----+
| a| [1]|
| b| [1]|
+---+----+
我想在nums 列中向数组中添加元素,以便得到如下内容:
+---+-------+
| id|nums |
+---+-------+
| a| [1,5] |
| b| [1,5] |
+---+-------+
有没有办法使用 DataFrame 的 .withColumn() 方法来做到这一点?例如。
val df2 = df1.withColumn("nums", append(col("nums"), lit(5)))
我查看了 Spark 的 API 文档,但找不到任何可以让我执行此操作的内容。我可能可以使用split 和concat_ws 一起破解一些东西,但如果可能的话,我更喜欢更优雅的解决方案。谢谢。
【问题讨论】:
标签: scala apache-spark