在其他列上按条件封顶一个pyspark列,可以使用when
和otherwise
函数来实现。
首先,我们需要导入必要的模块和函数:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, when
接下来,创建一个SparkSession对象:
spark = SparkSession.builder.getOrCreate()
然后,加载数据集并创建一个DataFrame对象:
data = [(1, 10, 20), (2, 15, 25), (3, 30, 40)]
df = spark.createDataFrame(data, ["id", "col1", "col2"])
现在,我们可以使用when
和otherwise
函数来按条件封顶col2
列:
max_value = 25 # 设置封顶值
df = df.withColumn("col2", when(col("col2") > max_value, max_value).otherwise(col("col2")))
在上述代码中,我们使用when
函数来判断col2
列的值是否大于max_value
,如果是,则将其替换为max_value
,否则保持原值。最后,使用withColumn
函数将修改后的列重新赋值给col2
。
这样,我们就在其他列上按条件封顶了col2
列。
领取专属 10元无门槛券
手把手带您无忧上云