hive相關(guān)基礎(chǔ)
1厅须、進(jìn)入到hive命令下;(linux下直接輸入hive即可)
hive
2、查看工作分區(qū)下的hive表都有哪些抬旺?
show tables;
3、查看hive中某個(gè)具體表祥楣,例如要查看'abc'表的結(jié)構(gòu)(在hive命令下執(zhí)行)
desc abc;
4开财、建表語句’abc’;(下面是分隔符,加上就好有好處误褪,不然會(huì)出現(xiàn)本來要傳2列數(shù)據(jù)到兩個(gè)字段下面责鳍,卻發(fā)現(xiàn)兩列數(shù)據(jù)全部到了一個(gè)字段下面)
CREATE TABLE `abc`(
`dim_user_hid` string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
5、這句話是把本地文件中yz.txt中的數(shù)據(jù)傳到建的hive表'abc'中
load data local inpath 'yz.txt'into table abc;
6兽间、一般情況下是4和5聯(lián)合起來使用历葛,比如你要導(dǎo)出指定mac的相關(guān)數(shù)據(jù)信息,而數(shù)據(jù)庫中是所有mac的信息嘀略,那怎么篩選呢
先把指定的mac信息寫成一個(gè)txt文本恤溶,上傳到linux指定目錄下,然后把數(shù)據(jù)導(dǎo)入創(chuàng)建好的hive表中帜羊,然后和已知的hive達(dá)標(biāo)數(shù)據(jù)做join關(guān)聯(lián)即可
7咒程、6說到了文件上傳,給你說下上傳命令讼育;
linux命令下帐姻,rz -be 就會(huì)彈出界面稠集,選擇你要上傳的文件即可;
7饥瓷、刪除某個(gè)表剥纷;
hive下執(zhí)行drop table 表名;
8、其實(shí)hive的精髓就是表與表之間的關(guān)聯(lián)和相關(guān)字段之間的關(guān)聯(lián)呢铆,hive數(shù)據(jù)庫建好以后筷畦,里面會(huì)有很多表,幾乎所有信息都在里面儲(chǔ)存刺洒,但是需求并不一定需要
全部的數(shù)據(jù)鳖宾,所以就需要各種各樣的條件查詢和導(dǎo)出相應(yīng)的數(shù)據(jù);
9逆航、insert那句話是表示在tmp目錄下面建立的文件以及文件名稱(這句話一般都要加上并寫在查詢語句前方鼎文,方便查詢完畢后將文件導(dǎo)出來)
這個(gè)查詢語句是非常簡單的,就是說在導(dǎo)出hehe里面的id因俐、hid信息拇惋,條件是id=300119的所有信息
insert overwrite local directory '/tmp/300021' row format delimited fields terminated by ','
select id,hid from hehe where id =300119 ;
10、導(dǎo)完數(shù)據(jù)后抹剩,數(shù)據(jù)就存儲(chǔ)在了tmp目錄下面的300021文件中撑帖,這個(gè)時(shí)候,我們?nèi)サ?00021目錄中把文件下載到桌面就好了
可以vi 00000_0
然后:wq
再然后sz 00000_0即可澳眷;
另一種方法就是在數(shù)據(jù)導(dǎo)入的目錄下執(zhí)行:
cd /tmp/300019
cat *>> a.log
sz a.log即可(這種方式是將所有文件中的數(shù)據(jù)導(dǎo)入到了log文件中胡嘿,用起來比較方便)
先寫到這兒吧,hive還是要多多操作才會(huì)更加熟練钳踊,數(shù)據(jù)的導(dǎo)出工作是基礎(chǔ)的衷敌,同時(shí)也是磨煉基本功的,特別是多種表關(guān)聯(lián)的時(shí)候拓瞪,hive真的妙不可言缴罗,哈哈
元周