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

如何向 Spark DataFrame 添加常量列?

Patricia Arquette
Patricia Arquette原创
2024-11-08 15:04:01273浏览

How Do I Add a Constant Column to a Spark DataFrame?

向 Spark DataFrame 添加常量列

尝试使用 withColumn 和常量值向 DataFrame 添加新列时,用户由于数据不匹配可能会遇到错误

解决方案:

Spark 2.2 :

使用 typedLit 直接赋值各种类型的常量值:

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

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

Spark 1.3 :

使用 lit 创建文字值:

from pyspark.sql.functions import lit

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

Spark 1.4 :

对于复杂的列,使用类似的功能块数组、结构体和 create_map:

from pyspark.sql.functions import array, struct, create_map

df.withColumn("some_array", array(lit(1), lit(2), lit(3)))

中Scala:

import org.apache.spark.sql.functions.{array, lit, map, struct}

df.withColumn("new_column", lit(10))
df.withColumn("map", map(lit("key1"), lit(1), lit("key2"), lit(2)))

对于结构体,请在每个字段上使用别名或对整个对象进行强制转换以提供名称:

df.withColumn(
    "some_struct",
    struct(lit("foo").alias("x"), lit(1).alias("y"), lit(0.3).alias("z"))
 )

注意:

这些构造还可用于将常量参数传递给 UDF 或 SQL 函数。

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

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