PySpark新手求助:将指定SQL语句转换为PySpark原生代码
PySpark原生代码实现目标SQL逻辑
你可以用PySpark的when/otherwise函数替代SQL中的CASE WHEN,配合max聚合函数来实现需求,完全不需要创建临时视图。以下是对应代码:
from pyspark.sql import functions as F # 假设mytab是你的PySpark DataFrame对象 result_df = ( mytab .select( F.max( F.when(F.col("col1") == "A", 1) .when(F.col("col2") == "B", 2) .otherwise(3) ).alias("my_col") ) ) # 查看结果 result_df.show()
代码说明:
F.when(条件, 结果):对应SQL中CASE WHEN 条件 THEN 结果的分支,多个when可以链式调用实现多条件判断F.otherwise(默认值):对应SQL中的ELSE,处理所有不满足前面条件的情况F.max():对条件表达式的结果执行最大值聚合,和SQL中的MAX()功能一致.alias("my_col"):给聚合后的列设置别名,对应SQL中的AS my_col
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

