求与PySpark DataFrame分组求和代码等价的PySpark SQL查询语句
对应的PySpark SQL查询语句
没问题,我帮你把这段PySpark DataFrame的分组求和逻辑转换成等价的PySpark SQL语句~
首先你需要先把你的DataFrame注册成一个临时视图(这样SQL才能访问到它的数据),然后编写对应的分组求和查询:
# 1. 将DataFrame注册为临时视图,视图名可以自定义,这里用`sales_data`举例 df.createOrReplaceTempView("sales_data") # 2. 执行PySpark SQL查询,得到和原DataFrame操作完全一致的结果 spark.sql(""" SELECT Country, `Product Category`, `Sub Category`, SUM(Profit) AS Total_Profit FROM sales_data GROUP BY Country, `Product Category`, `Sub Category` ORDER BY Country, `Product Category`, `Sub Category` """).show()
小说明:
- 因为你的列名里包含空格(比如
Product Category),所以在SQL里需要用反引号`把这类列名括起来,避免语法报错 - 如果希望结果列名和原DataFrame操作返回的
sum(Profit)完全一致,可以把AS Total_Profit改成ASsum(Profit)``(同样用反引号包裹) - 额外添加的
ORDER BY是为了让结果排序更规整,和原show()的默认排序逻辑对齐,不需要的话可以直接删掉
内容的提问来源于stack exchange,提问作者Arun Prakash
相关产品推荐
相关产品推荐

