[SparkSQL][COUNT(*COLS)]关于count(col1,col2)的使用记录

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了[SparkSQL][COUNT(*COLS)]关于count(col1,col2)的使用记录脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

结论

功能

count(col1, col2) 可以统计 多个字段的非空记录

要求

  1. count()内含多个字段时,若有一个字段的记录为Null 则该条记录不会被统计
  2. count()内含多个字段时,非sparkSQL引擎需要加distinct 字段限制
  3. count()内含多个字段时,和以下语句不同 select count(*) From ( select distinct col1, col2 from table1 ) a distinct 子查询时,对于null数据,还是会有所保留,count(*)统计的是数据行数 count(col1,col2)统计记录时,count(null)=0,带有null数据时,记录不算
+---+-----+-----+
| id| name|score|
+---+-----+-----+
|  1|alice|   90|
|  2| null|   85|
|  3|alice|   95|
|  4|  Bob|  100|
|  5|alice|   95|
+---+-----+-----+
>>> spark.sql("""
    select count(distinct name,score)
    from table1
    """).show()
+---------------------------+
|count(DISTINCT name, score)|
+---------------------------+
|                          3|
+---------------------------+

>>> spark.sql("""
    select count(name,score)
    from table1
    """).show()

+------------------+
|count(name, score)|
+------------------+
|                 3|
+------------------+
>>> spark.sql("""
    select count(*)
    from(
        select distinct name, score
        from table1
    ) a
    """).show()
+--------+
|count(1)|
+--------+
|       4|
+--------+

脚本宝典总结

以上是脚本宝典为你收集整理的[SparkSQL][COUNT(*COLS)]关于count(col1,col2)的使用记录全部内容,希望文章能够帮你解决[SparkSQL][COUNT(*COLS)]关于count(col1,col2)的使用记录所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。