当前位置: 首页 > news >正文

SparkSQL 聚合函数 COUNT 对 NULL 值的处理

SparkSQL 聚合函数 COUNT 对 NULL 值的处理

官网:https://spark.apache.org/docs/4.0.0/sql-ref-functions.html

https://spark.apache.org/docs/4.0.0/sql-ref-null-semantics.html#builtin-aggregate-expressions

在这里插入图片描述

表达式是否统计 NULL说明
COUNT(*)✅ 是统计所有行数,不管有没有 NULL
COUNT(列名)❌ 否只统计该列中 非 NULL 值的数量
COUNT(DISTINCT 列名)❌ 否忽略 NULL,并去重统计
COUNT(1)✅ 是等价于 COUNT(*)

Demo:

%sql
WITH data AS (SELECT * FROM VALUES(1, 'A'),(2, NULL),(3, 'B'),(4, NULL),(5, 'A')AS tab(id, category)
)
SELECTcount(*) AS `count(*)`,count(category) AS `count(category)`,count(1) AS `count(1)`,count(DISTINCT category) AS `count(DISTINCT category)`
FROM data;

输出结果:

在这里插入图片描述

  • count(*) = 5:总共有 5 行,包含 NULL
  • count(category) = 3:只有 3 个非 NULL 值(‘A’, ‘B’, ‘A’)。
  • count(1) = 5:等价于 count(*)
  • count(DISTINCT category) = 2:非 NULL 的唯一值是 'A''B'

  1. 统计总行数时,优先使用 COUNT(*)

  2. 统计某列的有效值数量时,使用 COUNT(col)—— 可以知道有多少条记录是非空的。

  3. COUNT(DISTINCT col) —— 它只统计非空且唯一的值,不是总数。


Spark官方对于各种函数处理null值的说明:

https://spark.apache.org/docs/4.0.0/sql-ref-null-semantics.html#builtin-aggregate-expressions

在这里插入图片描述

http://www.dtcms.com/a/291718.html

相关文章:

  • css3地球转动模型(动态数据)
  • RxSwift 核心解析
  • 生成式AI導論 2024】第9講:以大型語言模型打造的AI Agent 学习记录
  • Nacos 注册中心高频面试题及解析
  • v0+claude+cursor构建初始脚手架
  • ADA4522-2ARMZ-R7 ADI亚德诺 双通道零漂移运算放大器 工业高精度测试设备应用
  • 您需要了解的有关 GIS 中基于位置和基于属性的查询的所有信息
  • [pdf epub]《软件方法》电子书202507更新下载
  • thinkphp入门
  • 企业级IIS配置手册:安全加固/负载均衡/性能优化最佳实践
  • C++性能优化擂台技术文章大纲
  • Axios Token 设置示例
  • MySql 运维性能优化
  • React 项目性能优化概要
  • Vue-21-利用Vue3的axios+Python的flask实现前后端交互功能
  • 精密全波整流电路(二)
  • 以太网基础⑥ ZYNQ PS端 基于LWIP的TCP例程测试
  • uniapp “requestPayment:fail [payment支付宝:62009]未知错误“
  • 渗透第2次作业
  • 从零开始:Vue 3 + TypeScript 项目创建全记录
  • C++刷题常用方法
  • uniapp请求封装上传
  • DeepSPV:一种从2D超声图像中估算3D脾脏体积的深度学习流程|文献速递-医学影像算法文献分享
  • 从0到1:盲盒抽卡小程序开发全流程解析
  • 浙江大学PTA程序设计C语言基础编程练习题1-5
  • 【Python办公】Excel工作表拆分工具(按照sheet进行拆分-calamine-极速版)
  • Linux系统安装Bash自动补全(bash-completion)
  • 【React-Three-Fiber实践】放弃Shader!用顶点颜色实现高性能3D可视化
  • Python关于pandas的基础知识
  • 使用Minio后处理图片回显问题