在pyspark中,可以使用when
和otherwise
函数来根据复杂条件创建列。
when
函数接受一个条件表达式和一个值,如果条件表达式为真,则返回该值;否则返回None
。otherwise
函数接受一个值,用于指定当所有条件表达式都不为真时的默认值。
下面是一个示例代码,演示如何在pyspark中根据复杂条件创建列:
from pyspark.sql import SparkSession
from pyspark.sql.functions import when
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建示例数据
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["name", "age"])
# 使用when和otherwise创建新列
df = df.withColumn("category", when(df.age < 30, "Young").otherwise("Old"))
# 显示结果
df.show()
运行以上代码,将会输出以下结果:
+-------+---+--------+
| name|age|category|
+-------+---+--------+
| Alice| 25| Young|
| Bob| 30| Old|
|Charlie| 35| Old|
+-------+---+--------+
在这个例子中,我们根据年龄的复杂条件创建了一个新的列category
。如果年龄小于30,则category
为"Young",否则为"Old"。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云