【发布时间】:2020-09-18 17:54:33
【问题描述】:
我们在Scala API for Spark 中有一个函数typedLit 可以将Array 或Map 添加为列值。
import org.apache.spark.sql.functions.typedLit
val df1 = Seq((1, 0), (2, 3)).toDF("a", "b")
df1.withColumn("seq", typedLit(Seq(1,2,3)))
.show(truncate=false)
+---+---+---------+
|a |b |seq |
+---+---+---------+
|1 |0 |[1, 2, 3]|
|2 |3 |[1, 2, 3]|
+---+---+---------+
我在 PySpark 中找不到等价物。我们如何在 PySpark 中创建一个以 Array 为列值的列?
【问题讨论】:
-
pyspark 中没有 typedLit 的等效功能,但是您可以结合使用 array 和 lit df1.withColumn("seq" , array([lit(x) for x in [1,2,3] ]) )
标签: scala apache-spark pyspark apache-spark-sql