当前位置:   article > 正文

头歌 Hive(全部4个相关实验)_hive表dml操作头歌

hive表dml操作头歌

目录

目录

Hive表DDL操作(一)(代码文件全部替换)

(1)Create/Alter/Drop 数据库

(2)​​​​​Create/Drop/Truncate 表​​​​​

 (3)Alter 表/列

(4)表分区

Hive表DDL操作(二)(代码文件全部替换)

第1关:Create/Drop/Alter 视图

第2关:Create/Drop/ALTER 索引

Hive 表 DML 操作(代码文件全部替换)

第1关:将文件中的数据导入(Load)到 Hive 表中

第2关:Select 操作

第3关:将 select 查询结果插入 hive 表中

第4关:将 select 查询结果写入文件

Hive的安装与配置



Hive表DDL操作(一)(代码文件全部替换)

(1)Create/Alter/Drop 数据库

#********* Begin *********#

echo "CREATE DATABASE IF NOT EXISTS test1  

LOCATION '/hive/test1'  

WITH DBPROPERTIES('creator'='John','date'='2019-02-25');  

ALTER DATABASE test1 SET DBPROPERTIES('creator'='Marry');  

DROP DATABASE test1;  




 

"

#********* End *********#

(2)​​​​​Create/Drop/Truncate 表​​​​​

#********* Begin *********#

echo "

CREATE DATABASE IF NOT EXISTS test2  

LOCATION '/hive/test2'  

WITH DBPROPERTIES('creator'='John','date'='2022-04-20');  

CREATE TABLE IF NOT EXISTS test2.student(  

Sno INT COMMENT 'student sno',  

name STRING COMMENT 'student name',  

age INT COMMENT 'student age',  

sex STRING COMMENT 'student sex',  

score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT> COMMENT 'student score');

CREATE TABLE IF NOT EXISTS student_info  

LIKE student;  

DROP TABLE IF EXISTS student;  


 

"

#********* End *********#

 (3)Alter 表/列

#********* Begin *********#

echo "

CREATE DATABASE IF NOT EXISTS test3  

LOCATION '/hive/test3'  

WITH DBPROPERTIES('creator'='John','date'='2022-04-20');  

CREATE TABLE IF NOT EXISTS test3.student(  

Sno INT COMMENT 'student sno',  

name STRING COMMENT 'student name',  

age INT COMMENT 'student age',  

sex STRING COMMENT 'student sex',  

score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT> COMMENT 'student score');

ALTER TABLE student RENAME TO student_info;  

ALTER TABLE student_info CHANGE age student_age int; 

ALTER TABLE student_info ADD COLUMNS (birthday STRING COMMENT 'student birthday'); 


 

"

#********* End *********#

(4)表分区

#********* Begin *********#

echo "

CREATE DATABASE IF NOT EXISTS test4  

LOCATION '/hive/test4'  

WITH DBPROPERTIES('creator'='John','date'='2022-04-20');  

CREATE TABLE IF NOT EXISTS test4.student(  

Sno INT COMMENT 'student sno',  

name STRING COMMENT 'student name',  

age INT COMMENT 'student age',  

sex STRING COMMENT 'student sex',  

score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT> COMMENT 'student score')

PARTITIONED BY (stu_year STRING,subject STRING)  

ROW FORMAT DELIMITED  

FIELDS TERMINATED BY '\t'  

COLLECTION ITEMS TERMINATED BY ',' ;

ALTER TABLE student ADD PARTITION (stu_year='2018',subject='Chinese') LOCATION '/hive/test4/student/Chinese/2018'  

PARTITION (stu_year='2018',subject='Math') LOCATION '/hive/test4/student/Math/2018';

ALTER TABLE student PARTITION (stu_year='2018',subject='Math') RENAME TO PARTITION (stu_year='2018',subject='English'); 

ALTER TABLE student DROP IF EXISTS PARTITION (stu_year='2018',subject='Chinese');  


 

"

#********* End *********#

Hive表DDL操作(二)(代码文件全部替换)

第1关:Create/Drop/Alter 视图

#********* Begin *********#

echo "

CREATE DATABASE IF NOT EXISTS test1;

CREATE TABLE IF NOT EXISTS test1.student(

Sno INT ,

name STRING ,

age INT ,

sex STRING ,

score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT>

) ;

CREATE VIEW student_view(

Sno,

name_length,

age,

sex

AS SELECT Sno,length(name),age,sex FROM student;

alter view student_view rename to student_info_views;

 drop view if exists student_info_views;



 

"

#********* End *********#

第2关:Create/Drop/ALTER 索引

#********* Begin *********#

echo "

CREATE DATABASE IF NOT EXISTS test2;

CREATE TABLE IF NOT EXISTS test2.student(

Sno INT ,

name STRING ,

age INT ,

sex STRING ,

score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT>

row format delimited fields terminated by ','   

collection items terminated by '-'  

;

load data local inpath '/home/student.txt'

overwrite into table student;

create index student_index on table student(Sno)

as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'

with deferred rebuild

IN TABLE student_index_table;

drop index if exists student_index on student;



 

"

#********* End *********#

Hive 表 DML 操作(代码文件全部替换)

第1关:将文件中的数据导入(Load)到 Hive 表中

/********* Begin *********/

CREATE DATABASE IF NOT EXISTS test1

LOCATION '/hive/test1';

USE test1;

CREATE TABLE IF NOT EXISTS test1.student(

Sno INT,

name STRING ,

age INT ,

sex STRING ,

score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT> )

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

COLLECTION ITEMS TERMINATED BY '-';

load data local inpath '/home/student.txt' overwrite into table student;

/********* End *********/

select * from student;

第2关:Select 操作

--Begin

USE test2;

select * from student;

select * from student where age > 17 and sex = "female";

select * from student where score.Chinese > 90 ;

select * from student limit 3;

select * from student sort by age desc limit 2;

--End

第3关:将 select 查询结果插入 hive 表中

--Begin

--使用test3数据库

use test3;

--复制student表两份,分别名为:student2、student3

CREATE TABLE IF NOT EXISTS student2

LIKE student;

CREATE TABLE IF NOT EXISTS student3

LIKE student;

--以覆盖插入的方式把student表中前两条数据插入到student2中

insert overwrite table student2

select * from student limit 2;

--评测代码,勿删

select * from student2;

--以追加插入的方式把student表中前两条数据插入到student2中

insert into table student2

select * from student limit 2;

--评测代码,勿删

select * from student2;

--以覆盖插入的方式把student表中年龄大于17岁的数据插入到student2、student3中

from student ii

insert overwrite table student2

select * where ii.age>17

insert overwrite table student3

select * where ii.age>17;

--评测代码,勿删

select * from student2;

select * from student3;

--以追加插入的方式把student表中的男生数据插入到student2,以覆盖插入的方式把女生数据插入到student3中

from student ii

insert into table student2

select * where ii.sex='male'

insert overwrite table student3

select * where ii.sex='female';

--评测代码,勿删

select * from student2;

select * from student3;

--End

第4关:将 select 查询结果写入文件

--使用test4数据库

use test4;

--Begin

insert overwrite local directory '/home/test4'

select * from student limit 2;

FROM student

INSERT OVERWRITE  LOCAL DIRECTORY '/home/test4_1'

SELECT  * where sex='male'

INSERT OVERWRITE  LOCAL DIRECTORY '/home/test4_2'

SELECT  * where sex='female' ;

--End

Hive的安装与配置

看下面这位博主的很详细(按照博主的照片一步步来)

会撸代码的懒羊羊的博客_CSDN博客-Experience,Django,Educoder领域博主

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/588143
推荐阅读
相关标签
  

闽ICP备14008679号