首页  >  文章  >  后端开发  >  如何向 Spark DataFrame 添加常量列?

如何向 Spark DataFrame 添加常量列?

Linda Hamilton
Linda Hamilton原创
2024-11-07 00:31:02383浏览

How to Add a Constant Column to a Spark DataFrame?

在 Spark DataFrame 中创建常量列

使用适用于所有行的任意值将常量列添加到 Spark DataFrame 可以可以通过多种方式来实现。用于此目的的 withColumn 方法在尝试提供直接值作为其第二个参数时可能会导致错误。

使用文字值 (Spark 1.3 )

要解决此问题,请使用 lit 创建所需值的文字表示:

from pyspark.sql.functions import lit

df.withColumn('new_column', lit(10))

创建复杂列 (Spark 1.4 )

对于更复杂的列类型,例如数组、结构体或映射,请使用适当的函数:

from pyspark.sql.functions import array, struct

df.withColumn('array_column', array(lit(1), lit(2)))
df.withColumn('struct_column', struct(lit('foo'), lit(1)))

类型化文字 (Spark 2.2 )

Spark 2.2 引入了 typedLit,提供了对Seq、Map 和元组:

import org.apache.spark.sql.functions.typedLit

df.withColumn("some_array", typedLit(Seq(1, 2, 3)))

使用用户定义函数 (UDF)

或者,创建一个返回常量值的 UDF:

from pyspark.sql import functions as F

def constant_column(value):
    def udf(df):
        return [value for _ in range(df.count())]
    return F.udf(udf)

df.withColumn('constant_column', constant_column(10))

注意:

这些方法还可以用于将常量参数传递给 UDF 或 SQL 函数。

以上是如何向 Spark DataFrame 添加常量列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn