假设我有以下数据框:
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] |
+---+-------+
有没有办法使用.withColumn()
DataFrame 的方法?例如。
val df2 = df1.withColumn("nums", append(col("nums"), lit(5)))
我浏览了 Spark 的 API 文档,但找不到任何可以让我执行此操作的内容。
import org.apache.spark.sql.functions.{lit, array, array_union}
val df1 = Seq("a", "b").toDF("id").withColumn("nums", array(lit(1)))
val df2 = df1.withColumn("nums", array_union($"nums", lit(Array(5))))
df2.show
+---+------+
| id| nums|
+---+------+
| a|[1, 5]|
| b|[1, 5]|
+---+------+
The array_union()
自 Spark 2.4.0 于 2018 年 11 月 2 日发布以来添加,即您提出问题 7 个月后,:) 请参阅https://spark.apache.org/news/index.html https://spark.apache.org/news/index.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)