如何为spark的dataframe添加常量列

it2024-11-05  16

有时候由于数据处理需要,我们会为dataframe添加一个常量列,本文介绍向dataframe添加常量列的方法。

使用typedLit函数

通过函数:org.apache.spark.sql.functions.typedLit,可以添加List,Seq和Map类型的常量列。

scala> val df1 = sc.parallelize(Seq("Hello", "world")).toDF() df1: org.apache.spark.sql.DataFrame = [value: string] scala> df1.withColumn("some_array", typedLit(Seq(7, 8, 9))).show() +-----+----------+ |value|some_array| +-----+----------+ |Hello| [7, 8, 9]| |world| [7, 8, 9]| +-----+----------+ scala> df1.withColumn("some_struct", typedLit(("teststring", 1, 0.3))).show(false) +-----+--------------------+ |value|some_struct | +-----+--------------------+ |Hello|[teststring, 1, 0.3]| |world|[teststring, 1, 0.3]| +-----+--------------------+ scala> df1.withColumn("data_map", typedLit(Map("k1" -> 1, "k2" -> 2))).show(false) +-----+------------------+ |value|data_map | +-----+------------------+ |Hello|[k1 -> 1, k2 -> 2]| |world|[k1 -> 1, k2 -> 2]| +-----+------------------+

使用lit函数来添加字符常量列

可以通过函数:org.apache.spark.sql.functions.lit来添加字符类型的常量列。

scala> df1.withColumn("data_map", lit("teststring")).show(false) +-----+----------+ |value|data_map | +-----+----------+ |Hello|teststring| |world|teststring| +-----+----------+

小结

本文介绍了如何向dataframe添加常量列的方法。

最新回复(0)