You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:35:55