scala - PySpark 等效于来自 Scala API 的函数 "typedLit"

标签 scala apache-spark pyspark apache-spark-sql

我们有一个函数 typedLitScala API for Spark将 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 中还没有等效的函数,但您可以有一个数组列,如下所示:

from pyspark.sql.functions import array, lit
df = sc.parallelize([[1,2], [3,4]]).toDF(['a', 'b'])
df.withColumn('seq', array([lit(i) for i in [1,2,3]])).show()
输出:
+---+---+---------+                                                             
|  a|  b|      seq|
+---+---+---------+
|  1|  2|[1, 2, 3]|
|  3|  4|[1, 2, 3]|
+---+---+---------+

关于scala - PySpark 等效于来自 Scala API 的函数 "typedLit",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62115150/

相关文章:

scala - 将信息保存到 Cassandra 不会保持顺序

java - 如何在 Scala 中将典型的 Json 文件格式打印到 Hashmap(Map) 中?

python - 为什么 Apache-Spark - Python 本地速度比 pandas 慢?

apache-spark - 如何启用从 Cassandra 到 Spark 的流式传输?

python - 如何获取包含 Pyspark Dataframe 中另一列中给出的多列值的列表列?

java - Scala - 运行时字符串模板

scala - SBT - 总是出现 Unresolved 依赖错误

java - Spark 错误 : NoSuchMethodError: scala. Predef$.$conforms()Lscala/Predef$$less$colon$less

python - 设置 Spark-testing-base 的 Spark Config 属性

pyspark - 删除 pyspark 中下一列的空值和移位值