📅  最后修改于: 2023-12-03 15:24:22.621000             🧑  作者: Mango
在Scala中使用Spark编写代码时,我们经常需要在数据框中添加新的列。本文将介绍如何在Spark中永久数据框中添加一列。
在添加新的列之前,您必须在Spark中创建一个数据框并进行操作。在这里,我们将使用spark-shell
中的pyspark
来演示如何在Scala中使用Spark添加新的列。
在Spark中添加新列的最常见方法是使用withColumn
函数。此函数接受两个参数——新列的名称和新列的表达式。新列表达式可以是Spark表达式或Java/Scala函数。
下面是一个简单例子,向一个数据框中添加一列:
val df = Seq((1, "a"), (2, "b"), (3, "c")).toDF("id", "name")
val newDf = df.withColumn("age", lit(30))
在这个例子中,我们使用lit
函数来创建一个包含常量值的Spark表达式。新的age
列包含由lit
函数指定的常量值。
如果您希望将新列添加到现有的数据框中,您可以使用df.withColumn
函数来实现。以下是一个具有更多自定义的示例:
val df = Seq((1, "a"), (2, "b"), (3, "c")).toDF("id", "name")
val newDf = df.withColumn("age", when($"id" === 1, 30).otherwise(40))
在这个例子中,我们使用了when
函数来根据列id
的值为新列指定值。如果id
等于1,则新的age
列将包含30,否则它将包含40。
在Spark中使用withColumn
函数添加一个新列是非常简单的。您可以指定一个新列的名称和一个表达式,该表达式定义新列的内容。无论您想要使用的是现有的Spark表达式还是自定义Java/Scala函数,该函数都可以轻松地添加一个新列。