Distinct Count有什么作用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇"Distinct Count有什么作用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看
千家信息网最后更新 2026年11月01日Distinct Count有什么作用
这篇"Distinct Count有什么作用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Distinct Count有什么作用"文章吧。
| 大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 |
Hive
在大数据场景下,报表很重要一项是UV(Unique Visitor)统计,即某时间段内用户人数。例如,查看一周内app的用户分布情况,Hive中写HiveQL实现:
select app, count(distinct uid) as uvfrom log_tablewhere week_cal = '2016-03-27'
Pig
与之类似,Pig的写法:
-- all usersdefine DISTINCT_COUNT(A, a) returns dist { B = foreach $A generate $a; unique_B = distinct B; C = group unique_B all; $dist = foreach C generate SIZE(unique_B);}A = load '/path/to/data' using PigStorage() as (app, uid);B = DISTINCT_COUNT(A, uid);-- A = load '/path/to/data' using PigStorage() as (app, uid);B = distinct A;C = group B by app;D = foreach C generate group as app, COUNT($1) as uv;-- suitable for small cardinality scenariosD = foreach C generate group as app, SIZE($1) as uv;DataFu 为pig提供基数估计的UDF datafu.pig.stats.HyperLogLogPlusPlus,其采用HyperLogLog++算法,更为快速地Distinct Count:
define HyperLogLogPlusPlus datafu.pig.stats.HyperLogLogPlusPlus();A = load '/path/to/data' using PigStorage() as (app, uid);B = group A by app;C = foreach B generate group as app, HyperLogLogPlusPlus($1) as uv;
Spark
在Spark中,Load数据后通过RDD一系列的转换--map、distinct、reduceByKey进行Distinct Count:
rdd.map { row => (row.app, row.uid) } .distinct() .map { line => (line._1, 1) } .reduceByKey(_ + _)// orrdd.map { row => (row.app, row.uid) } .distinct() .mapValues{ _ => 1 } .reduceByKey(_ + _)// or rdd.map { row => (row.app, row.uid) } .distinct() .map(_._1) .countByValue()同时,Spark提供近似Distinct Count的API:
rdd.map { row => (row.app, row.uid) } .countApproxDistinctByKey(0.001)实现是基于HyperLogLog算法:
The algorithm used is based on streamlib's implementation of "HyperLogLog in Practice: Algorithmic Engineering of a State of The Art Cardinality Estimation Algorithm", available here.
或者,将Schema化的RDD转成DataFrame后,registerTempTable然后执行sql命令亦可:
val sqlContext = new SQLContext(sc)val df = rdd.toDF()df.registerTempTable("app_table")val appUsers = sqlContext.sql("select app, count(distinct uid) as uv from app_table group by app")以上就是关于"Distinct Count有什么作用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
数据
作用
文章
时间
用户
知识
算法
篇文章
行业
处理
重要
人数
价值
信息
写法
同时
命令
场景
基数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技名片
为想互联网科技怎么样
互联网通讯科技
科技互联网技术
深圳科技互联网
互联网 卓越科技
互联网科技公司怎么样
哈尔滨新华互联网科技
现代科技和互联网有关系吗
哈尔滨新华互联网科技学院
南平创想时代互联网科技有限公司
阿大互联网科技有限公司
亳州好赞互联网科技有限公司
南通创西澳互联网科技有限公司
梅州GM互联网络科技有限公司
广州燕处互联网科技有限公司
互联网科技职业技能培训学校
科技互联网经济论坛
科技互联网公司两年变化
颐高云石互联网科技
互联网科技公司起名
科技互联网企业
互联网科技深圳
碳银互联网科技有限公司
互联网科技的未来发展
佰商互联网科技有限公司
上海宁丞科技互联网
内蒙古九一互联网科技
恒生互联网科技业指数调整周期
现代科技的标志之一的互联网