在pyspark中,可以使用withColumn()
方法根据列当前值更新列。该方法接受两个参数,第一个参数是要更新的列名,第二个参数是一个表达式,用于计算新的列值。
以下是一个示例代码:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建示例数据
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["Name", "Age"])
# 更新Age列,将Age值加上10
df = df.withColumn("Age", col("Age") + 10)
# 显示更新后的数据
df.show()
输出结果为:
+-------+---+
| Name|Age|
+-------+---+
| Alice| 35|
| Bob| 40|
|Charlie| 45|
+-------+---+
在上述示例中,我们使用withColumn()
方法更新了Age列,将每个值加上了10。通过col("Age")
获取了Age列的当前值,并使用加法运算符将其与10相加,得到新的列值。最后,我们将更新后的数据显示出来。
需要注意的是,withColumn()
方法返回一个新的DataFrame,原始DataFrame并没有被修改。如果需要保留更新后的结果,需要将其赋值给一个新的变量。
领取专属 10元无门槛券
手把手带您无忧上云