在Pyspark中,可以使用条件表达式和列选择操作来根据另一列的值选择另一列。以下是一个完善且全面的答案:
在Pyspark中,可以使用when
和otherwise
函数来实现根据另一列的值选择另一列的操作。具体步骤如下:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, when
spark = SparkSession.builder.getOrCreate()
data = [("Alice", 25, "F"), ("Bob", 30, "M"), ("Charlie", 35, "M")]
df = spark.createDataFrame(data, ["name", "age", "gender"])
df.show()
输出结果:
+-------+---+------+
| name|age|gender|
+-------+---+------+
| Alice| 25| F|
| Bob| 30| M|
|Charlie| 35| M|
+-------+---+------+
df.select("name", "age", "gender", when(col("gender") == "M", col("age")).otherwise(None).alias("selected_age")).show()
输出结果:
+-------+---+------+------------+
| name|age|gender|selected_age|
+-------+---+------+------------+
| Alice| 25| F| null|
| Bob| 30| M| 30|
|Charlie| 35| M| 35|
+-------+---+------+------------+
在上述代码中,我们使用when
函数来判断gender
列的值是否为"M",如果是,则选择age
列的值,否则选择None
。最后使用alias
函数给新列命名为"selected_age"。
这样,我们就根据另一列的值选择了另一列,并将结果显示出来。
推荐的腾讯云相关产品:腾讯云分析型数据库TDSQL、腾讯云数据仓库CDW、腾讯云弹性MapReduceEMR、腾讯云云服务器CVM等。你可以通过访问腾讯云官方网站获取更多关于这些产品的详细信息和介绍。
腾讯云产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云