大数据之hiveSQL

最近增加了学习java基础算法,包括几种排序算法,二叉树(前序,后序,中序),队列和栈,bmp搜索,广义搜索算法,迭代等等一些技巧(自己动手绝对比单纯的理论要强的多,多练练)

 

HIVE是hadoop生态圈的重要一环,降低了hadoop的开发难度,将复杂冗余的代码综合成一个个简单的SQL语句。但是,很明显不如传统的MapReduce灵活,但是提高了项目的开发效率,学习成本低。

主要通过学习视频加上各种博客和其它资料,学习基础的入门SQL语句可以从菜鸟教程上面,hive语法的我主要看的是--> https://www.cnblogs.com/HondaHsu/p/4346354.html

HiveSQL主要分为DDL 和DML

DDL

1.创建表 

create [local] table table_name (column_name column_type [commet '描述'],...)

           partitioned by (column_name,...)

           clustred by (column_name,..)

           order by(column_name)  // 注意与sort by 的区别 前者是全局 后者是当前主机

           row format delimited

           field terminated by char;

           stored as ...

           localtion hdfs_path

          复制一个表结构

         create table table_name like like_table_name;

 

2.修改表

alter table table_name/column_name rename to new_table_name/column_new_name; //修改表名

alter table table_name change [column] column_name column_new_name column_new_name_type [commet] //修改列名

alter table table_name drop cloumn_name/partition_sec;

alter table table_name add column(column_name column_type)

alter table table_name set fileformat new_format;

3删除表,分区

drop table table_name;

alter table table_name  drop partition_sec;

4创建数据库

create database database_name;

show databases;

DML

hive 没有insert into 不支持一条一条的插入,可以使用insert overwrite , load data [local]

insert overwrite table table_name

select * from other_table;

local data [local] path 'url' into table table_name [partition]

hive 不支持等值连接 类似

select * from table1 a and table b where a.cloumn = b.column;

可以使用 left semi join 代替

insert overwrite 可以直接导出去

insert overwrite [LOCAL] directory ' ' select * from table;

另外hive中 join只支持等值查询

select a.column b.column from table_name1 a join table_name2 b on a.column = b.column;

 

DQL

select  [column_name1,..] from table_name

[where where_condition] /[join .. on .. ]

[group by]

[order by]/[sort by]

[partition]

[limit  num]

可能有些地方有些问题,还有很多需要补充。

 

 

 

 

        

 

posted on 2018-08-13 21:04  叶子不要闹  阅读(1912)  评论(0编辑  收藏  举报