老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

DistinctCount有什么作用

這篇“Distinct Count有什么作用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Distinct Count有什么作用”文章吧。

專業領域包括網站建設、做網站、商城開發、微信營銷、系統平臺開發, 與其他網站設計及系統開發公司不同,成都創新互聯的整合解決方案結合了幫做網絡品牌建設經驗和互聯網整合營銷的理念,并將策略和執行緊密結合,為客戶提供全網互聯網整合方案。

大數據(big data),IT行業術語,是指無法在一定時間范圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。

Hive

在大數據場景下,報表很重要一項是UV(Unique Visitor)統計,即某時間段內用戶人數。例如,查看一周內app的用戶分布情況,Hive中寫HiveQL實現:

select app, count(distinct uid) as uv
from log_table
where week_cal = '2016-03-27'

Pig

與之類似,Pig的寫法:

-- all users
define 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 scenarios
D = 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(_ + _)

// or
rdd.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有什么作用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創新互聯行業資訊頻道。


網頁題目:DistinctCount有什么作用
網頁地址:http://www.xueling.net.cn/article/jgscpe.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 亚洲精品中文字幕乱码4区 亚洲国产欧美国产综合一区 | 91精品国产91久久 | 高清视频播放在线观看 | 亚洲五区在线观看 | 国产高清无码在线一区二区 | 香蕉免费网站 | 在线天堂最新版资源 | 久99久精品视频免费观看 | 亚洲欧洲日韩精品中文字幕 | 亚洲欧美国产一区二区三区 | 成人在线观看中文字幕 | 一级黄色片子免费看 | 久久久久久人妻无码 | 久久婷婷五月综合中文字幕 | 日本免费人成在线观看 | 欧美日韩国产二区 | 1024国产在线观看 | 久久精品三级 | 色婷婷久久久久swag精品 | 91久久精品久久国产性色也91 | 日韩伦理亚洲一区 | 国产高清av在线一区二区三区 | 嗯嗯嗯在线观看 | 国产第一亚洲 | 成人导航网站 | 国产乱码日产乱码精品精 | 边吃奶边扎下面好爽免费视频 | 五月天人体久久 | 国产亚洲欧洲网友拍 | 亚洲ww77777影视 | 天堂亚洲一区 | 亚洲AV成人片色在线观看蜜桃 | 成人久久久精品乱码一区二区三区 | 在线观看一区三区 | 欧美高清黄| 欧美日本不卡视频 | 亚洲91网| 久久久久久久伊人 | 久在线中文字幕乱码免费 | www一级片 | 青青草成人影视 |