第十三天 hive的基本操作

2021-06-28 15:30:10 字數 1121 閱讀 2070

hadoop和hive的資料處理淚流成

hive cli常用操作

需求場景:統計每日使用者登入總數

每分鐘的原始日誌內容如下:

假如只有兩個欄位uid和ip,其中uid是使用者的uid

是使用者的uid,是使用者的唯一標識,ip是使用者的

登入ip,每日的記錄行數是10億行,要統計出一天使用者登入的總數

處理流程

1、建表

那麼我們首先要在hive裡面建立一張表,建表語句如下:

表名-login

fields  列分分隔符號

create table login(

uid string,

ip string

)partitioned by (dt string)

row format delimited

fields terminated by ','

stored as textfile; 

其實表名是login,字段之間以,隔開,儲存是text,其次

還以dt這個字段作為分割槽

建立成功之後,會看到hdfs上建立了

/user/hive/warehouse/login這個目錄

2、入庫

格式完畢,就可以把資料入庫到hive了。假設幾天

執行的命令

load data local inpath '/hadoop/hive0.9/testhive/test*' overwrite into

table login partition (dt='20150207')

執行成功

3、分析

在hive執行一下語句

select count(distinct uid) from login 

where  dt='20150207';

使用dt這個分割槽條件查詢,就可以避免hive去查詢其他分割槽的檔案

這樣減少io操作,這個是hive分割槽很重要的特性,也是已

天為單位,作為login表分割槽的重要意義。

執行完畢後,就可以在命令裡出現結果,一般通過管道執行hive shell命令

,讀取管道的內容,把結果入庫到mysql裡就完成了分析了、

分割槽不能做的太多。

一般是以天做為分割槽。

第十三天 練兵

問 昨天您講的很驚心動魄。這樣快節奏的配合確實非常完美,很羨慕。但要形成這樣的結果必須我們之間配合需要非常流暢,我們有什麼方法可以促成這樣的氛圍?答 練兵。如果一開始就進入業務系統功能的設計開發,業務組長對業務還沒有很深的吃透,這樣倉促上陣功能不但連上一版不如,而且為了補課,軟體不斷修改,什麼都亂了...

2020 7 18第十三天

1.學習了static關鍵字 靜態變數,靜態方法以及靜態模組 1 public class vardemo 9 1 public class staticblockdemo 5public staticblockdemo 8public static void main string args 12...

android基礎 第十三天

可航訓練營 為幫助大家更好的 系統性的學習 android 一 progressbar頁面進度提示 密碼 9ewc 二 fragment優化選項卡切換 密碼 gvsb 三 fragment和activity進行通訊 密碼 45u2 四 xlistview上拉重新整理 密碼 na6r 五 提示對話方塊...