目錄
一、Hive的基本操作
1. 使用Hive創建數據庫test
2. 檢索數據庫(模糊查看),檢索形如’te*’的數據庫
3. 查看數據庫test詳情
4. 刪除數據庫test
5. 創建一個學生數據庫Stus,在其中創建一個內部表Student,表格包含兩列:學號(字符型),姓名(字符型)
6. 修改表student表結構,添加新的一列:年齡,整數型
7. 創建一個表格名為employees,列名和數據類型根據常用習慣系定義,其表結構能載入如下格式的數據,并映射為表結構對應的字段。
二、Sogou日志數據分析
1. 統計每個uid的查詢次數
2. 搜索關鍵字內容包含‘仙劍’超過三次的用戶id
3. 統計不重復的uid的行數
一、Hive的基本操作
1. 使用Hive創建數據庫test
create database test;show databases; //查看數據庫
2. 檢索數據庫(模糊查看),檢索形如’te*’的數據庫
show database like 'te*';
3. 查看數據庫test詳情
describe database test;
?
4. 刪除數據庫test
drop database test;
5. 創建一個學生數據庫Stus,在其中創建一個內部表Student,表格包含兩列:學號(字符型),姓名(字符型)
create database Stus;use Stus;create table student(
sno string,
sname string
);
6. 修改表student表結構,添加新的一列:年齡,整數型
alter table student add column(sage int);
7. 創建一個表格名為employees,列名和數據類型根據常用習慣系定義,其表結構能載入如下格式的數據,并映射為表結構對應的字段。
1,hengdian,1000.0,13872787890,Zhejiang
2,hengqin,1234.0,18739292798,Guangdong
3,baishui,8797.0,13490980090,Hunan
寫出創建表格的語句,并使用load語句將上述數據內容載入表結構,該數據以文本文件的形式存放在本地文件系統,請自行用vi編輯器編輯。
data.txt
創建表的語法:
create table employees(
eno string,
ename string,
esal float,
phone string,
address string )
row format delimited
fields terminated by ',' ;
descripe employees;
導入本地數據語法:
load data local inpath '/home/gdpu/data.txt' into table employees;
select * from employees;?
二、Sogou日志數據分析
請完成創建外部表格并關聯sogou的500w數據,使用HiveQL完成下列數據分析。寫出Hive語句和執行結果。
create table sogou2024 (
times string,
uid string,
keyword string,
ranks int,
orders int,
URL string )
row format delimited
fields terminated by '\t';
?
load data inpath 'hdfs://hadoop100:8020/sogou.500w.utf8' into table sogou2024;
select * from sogou2024 limit 10;? //驗證是否導入成功
1. 統計每個uid的查詢次數
select uid, count(*) as cnt from sogou2024 group by uid;
?下面的截圖是執行結果的最后一部分,結果有135萬多行。
2. 搜索關鍵字內容包含‘仙劍’超過三次的用戶id
select uid
from sogou2024
where keyword like’%仙劍%’group by uid
having count(*) > 3 ;
運行截圖 :
3. 統計不重復的uid的行數
select count(distinct uid) as unique_uid_count?from sogou2024;
運行截圖:?
4. 統計搜索的關鍵字詞頻,找出查詢頻度超過20的關鍵詞和其頻度,按照頻度從高到低排列。
select keyword?,?count(*) as frequencyfrom sogou2024group by keywordhaving count(*) > 20order by frequency desc;
運行截圖:??