如何在Spark中实现Count Distinct重聚合
背景
Count Distinct是SQL查询中经常使用的聚合统计方式,用于计算非重复结果的数目。由于需要去除重复结果,Count Distinct的计算通常非常耗时。
以如下查询为例,Count Distinct的实现方式主要有两种:
SELECT region, COUNT(DISTINCT userId) FROM orders GROUP BY region
- 对订单表的数据按照region进行shuffle分区,在每个分区中使用一个类似HashTable的数据结构,存储所有的非重复userId的值,最后统计所有key的数量。
- 对表t的数据按照(region, userId)进行shuffle分区,第一步的结果即为非重复的(region, userId)对,对于第一步的结果再按照region分区,统计每个分区中的Row数量。
第一种方式
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
深度 | 带领国产数据库走向世界,POLARDB底层逻辑是什么? | 10月28号栖夜读
点击订阅云栖夜读日刊,专业的技术干货,不容错过! 阿里专家原创好文 1.深度 | 带领国产数据库走向世界,POLARDB底层逻辑是什么? 在刚刚结束的乌镇世界互联网大会上,阿里云自主研发的POLARDB云原生数据库当选世界互联网领先科技成果,凭实力站上C位。这个”包管“了北京市每天800万人次的公交出行的下一代分布式数据库到底有多强大?我们请阿里云智能数据库事业部总经理鸣嵩跟大家一起聊聊。阅读更多》》 2.十年磨一剑:从2009启动“去IOE”工程到2019年OceanBase拿下TPC-C世界第一 由此,启动了后面几年备受争议的“去IOE”工程。2010年5月,邀请正祥加盟淘宝,由此拉开了 OceanBase的自主研发之路。中间历尽磨难,各种反对、讽刺挖苦……回想起来当时都是折磨、痛苦和眼泪,今天说起来可以算是传奇和笑话了。2019年10月,OceanBase TPC-C 世界第一!热烈祝贺正祥和OB团队。今天我们可以自豪地说,阿里巴巴数字经济体的小二们,十年磨一剑,终于解决了困扰国家已久的信息技术三大软肋(“CPU芯片、操作系统、数据库”)之一的数据库难题,OceanBase 10...
- 下一篇
关于交互式分析对接Tableau你还不知道的神奇小秘密!
Tableau是一款极强大、安全且灵活的端到端数据分析平台,其Tableau Desktop是Tableau的一款可视化数据管理工具,以拖拽的方式就能提供实时可视化分析,快速获取切实可行的结果。目前交互式分析正在火热公测中,传送门:交互式分析官网交互式分析是一款实时交互平台,兼容PostgreSQL生态,能对接PostgreSQL的BI工具都能对接交互式分析,同时,交互式分析也与大数据生态无缝打通,支持直接加速查询MaxCompute中的数据。 但小编最近收到朋友们的反馈:希望交互式分析对接Tableau的时候,能够直接在Tableau中对外部表(MaxCompute表)可视化分析。(升级前的交互式分析版本支持对接Tableau,但是不支持在Tableau中可视化分析外部表) 在交互式分析中,新建外部表直接查询MaxCompute数据,数据仍然存储在MaxCompute中。 收到大家的反馈之后,小编立马跟开发锅锅们提需求、排期、测试。就在今天这个小功能悄悄咪咪上线啦,只需要一个命令操作就能让Tableau支持分析处理交互式分析的外部表。下面我们就来康康这个神奇的小功能吧! 前提条件 请...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境