Hive統計日首次登陸遊戲的使用者數

2021-09-29 06:18:55 字數 1842 閱讀 3374

【hive建表】

create table characterlogin(

gameid string,

childid string,

ip string,

serverid string,

accountid string,

characterid string,

logtype string,

logtime int,

platformchannelid string,

islogin int,

onlinetime int,

level int,

viplevel int

)partitioned by(year string,month string,day string) row format delimited fields terminated by '|';

將資料根據時間分割槽匯入hive,分割槽格式為,年/月/日(將檔案用xshell上傳到linux過程略)

shell指令碼如下

path="/home/li/desktop/characterlogin"

files=$(ls $path)

for filename in $files

do filename=$

var1=`echo "$filename"|awk -f '-' ''`

var2=`echo "$filename"|awk -f '-' ''`

var3=`echo "$filename"|awk -f '-' ''`

$hive_home/bin/hive -e "load data local inpath '$path/$filename.txt' into table

bigtrouble.characterlogin partition (year='$var1',month='$var2',day='$var3');"

done

【查詢思路】

新建hive資料庫為統計庫,新建一張表為統計結果表,表中兩個欄位date,count

查詢已分割槽的角色登入登出表,根據使用者id去重,統計單張表的id總數,取單錶的日期和id總數插入統計表

shell指令碼如下

path="/home/li/desktop/characterlogin"

files=$(ls $path)

for filename in $files

do  filename=$

var1=`echo "$filename"|awk -f '-' ''`

var2=`echo "$filename"|awk -f '-' ''`

var3=`echo "$filename"|awk -f '-' ''`

count=`$hive_home/bin/hive -e "select count(distinct accountid)  from bigtrouble.characterlogin

where year='$var1' and month='$var2' and day='$var3';"`

#不列印查詢欄位名

$hive_home/bin/hive -e "set hive.cli.print.header=false;"

$hive_home/bin/hive -e "insert into table day01.count1 values('$var1/$var2/$var3','$count');"  

done

【坑】

注意把hsql語句執行的結果賦值給shell變數時,那個符號不是單引號

Hive實現詞頻統計

hive中提供了類似於sql語言的查詢語言 hiveql,可以通過 hiveql語句快速實現簡單的 mapreduce統計,hive 自身可以將 hiveql 語句快速轉換成 mapreduce 任務進行執行,而不必開發專門的 mapreduce 應用程式,因而十分適合資料倉儲的統計分析。通過乙個簡...

使用hive做單詞統計

1 首先建立乙個檔案單詞的檔案,例如a.txt kk,123,weiwei,123 hlooe,hadoop,hello,ok h,kk,123,weiwei,ok ok,h 2 將檔案上傳到hdfs中 hdfs dfs copyfromlocal a.txt upload wangwei a.tx...

Hive實現多表級聯統計

有如下訪客訪問次數統計表 t access times 訪客月份 訪問次數 a2015 015a 2015 0115b 2015 015a 2015 018b 2015 0125a 2015 015a 2015 024a 2015 026b 2015 0210b 2015 025 需要輸出報表 t ...