pyspark - 为什么这个 spark sql 查询返回 null 的列的总和?
问题描述
我的输入:
+-------------------+------------------+-----------------+
| TransactionDate|Product Major Code|Gross Trade Sales|
+-------------------+------------------+-----------------+
|2017-09-30 00:00:00| A| 100.0|
|2017-06-30 00:00:00| B| 200.0|
|2017-06-30 00:00:00| C| 300.0|
+-------------------+------------------+-----------------+
我的代码:
df.registerTempTable("tmp")
df2=spark.sql("SELECT TransactionDate,'Product Major Code', sum('Gross Trade Sales') FROM tmp GROUP BY TransactionDate,'Product Major Code'")
spark.catalog.dropTempView('tmp')
我的输出:
+-------------------+------------------+--------------------------------------+
| TransactionDate|Product Major Code|sum(CAST(Gross Trade Sales AS DOUBLE))|
+-------------------+------------------+--------------------------------------+
|2017-09-30 00:00:00|Product Major Code| null|
|2017-06-30 00:00:00|Product Major Code| null|
+-------------------+------------------+--------------------------------------+
任何人都知道为什么它没有正确汇总产品主要代码和总贸易销售额?
更新:
最后我在下面给出了 PaulITs 的答案,因为它更优雅,并且不必担心反引号:
import pyspark.sql.functions as f
trydf.groupBy(f.col("TransactionDate"), f.col("Product Major Code")).agg(f.sum(f.col("Gross Trade Sales"))).show()
解决方案
推荐阅读
- android-layout - Nativescript(JS,XML)中的版本感知组件
- r - Rvest/Stringr:删除不可见的符号分裂词?
- java - 如何为多部分请求编写 Spring Cloud 合约?
- azure-iot-edge - 是否可以使用设备流进行 SSH 到通过 X.509 身份验证的 IoT Edge 设备?
- esp32 - 接收(全部)LoRa 数据包时出现问题
- python - 用python加密解密消息
- gitlab - Gitlab多管道覆盖变量传递给新管道
- angular - Power BI 报告在 Angular 中的路径更改上嵌入破坏
- powershell - InvokeWebRequest 上的 GetOfficeActivationsUserDetail 意外错误
- c++ - 多线程减慢主线程