Hive QL的操作
一、数据定义DDL操作
创建表:
--create table为创建一个指定名字的表
create(external) table table_name
--external关键字可以让用户创建一个外部表
创建表的demo
create table page_view
(
viewTime INT,
userid BIGINT,
page_url STRING,
referrer_url STRING,
ip STRING COMMENT 'IP ADDRESS of the User'
)
COMMENT 'This is the page view table'--注释表的用途
PARTITIONED BY(dt STRING,country STRING)--建立表分区
STORED AS SEQUENCEFILE;
2、删除表
--用于删除表的元数据和数据
drop table table_name
3、修改表,分区
--改变一个已经存在的表结构,比如增加列或者分区。
alter table table_name
4、创建、删除视图
--视图是只读的,不能用于插入,修改等。
create view view_name as select ...
create view onion_referrences
as
select distinct referrer_url
from page_view
where page_url='http://www.theonion.com';
--删除指定视图的元数据。
drop view view_name
5、创建、删除函数
create temporary function function_name as class_name drop temporary function function_name
6、展示描述语句
--显示表
show tables page_view
--显示分区
show partitions table_name
--显示函数
show functions "a.*"--".*"用来显示所有函数
二、数据操作DML
主要有数据表加载文件,查询结果
1、向数据表中加载文件
当数据被夹在到表中,Hive并不会对数据进行任何转换,Load操作只是将数据复制,移动到Hive表对应的位置上
load data inpath 'filepath'--filepath可以是相对路径,也可以是绝对路径,也可以是完整的URI
into table table_name--加载的目标可以是表table,分区partition。
2、插入操作
将查询结果通过insert插入表中
insert overwrite table table_name
select _statement1 from from_statement
3、查询操作
select语法来进行
select [all|distinct] select_expr1,select_expr2,...
from table
[where condition]
[group by col_list] select * from sales where amout>10 and region="US"
all/distinct:可以定义重复的行是否要返回,没有定义就是默认为all,不删除重复的记录
limit:控制输出的记录数,有点类似mysql的分页关键字。
Hive不支持Having语句,只能通过子查询来实现
--SQL语句
select col1 from table1 group by col1 having sum (col2)>10
--转化为Hive语句
select col1 from (select col1,sum(col2) as col2sum from table1 group by col1) table2 where table2.col2sum>10
Hive QL的操作的更多相关文章
- Hive QL 介绍
小结 本次课程学习了 Hive QL 基本语法和操作. 一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的 ...
- Hive的Shell里hive> 执行操作时,出现FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask错误的解决办法(图文详解)
不多说,直接上干货! 这个问题,得非 你的hive和hbase是不是同样都是CDH版本,还是一个是apache版本,一个是CDH版本. 问题详情 [kfk@bigdata-pro01 apache-h ...
- Hive中JOIN操作
1. 只支持相等JOIN. 2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业. 3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后. SELECT /* ...
- Hive学习之五 《Hive进阶—UDF操作案例》 详解
hive—UDF操作 udf的操作过程: 在HIVE会话中add 自定义函数的jar文件,然后创建function,继而使用函数. 下面就以下面课题为例: 课题:统计每个活动的PV和UV 一.Java ...
- hive:join操作
hive的多表连接,都会转换成多个MR job,每一个MR job在hive中均称为Join阶段.按照join程序最后一个表应该尽量是大表,因为join前一阶段生成的数据会存在于Reducer 的bu ...
- hive从本地导入数据时出现「Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask」错误
现象 通过load data local导入本地文件时报无法导入的错误 hive> load data local inpath '/home/hadoop/out/mid_test.txt' ...
- hive 2以上版本启动异常 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
hive2.0以上的版本启动时 抛出 “Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreCli ...
- Hive配置与操作实践
Hive配置与操作实践 @(Hadoop) 安装hive hive的安装十分简单,只需要在一台服务器上部署即可. 上传hive安装包,解压缩,将其配入环境变量. mysql的设置 在要作为元数据库的m ...
- Hive 学习之路(七)—— Hive 常用DML操作
一.加载文件数据到表 1.1 语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (p ...
随机推荐
- 【NOIP 2016】Day1 T2 天天爱跑步
Problem Description 小 C 同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任 ...
- EF Code First 整不明白 继续完善
1.Add-Migration RenameDesc 要修改列名先用这个,然后把要修改的列名手动修改一下. 多出这个文件 public partial class RenameDesc : DbM ...
- 项目Alpha冲刺——代码规范、冲刺任务与计划
作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Alpha冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及可视化分析平台 这个作业的 ...
- linux服务器安装brook服务端 使用brook客户端
既然你已经找到了此文章,说明已经知道brook的用途了,不做介绍,下面讲安装方法: 连接服务器,随便cd一个安装目录,例如: mkdir brook && cd brook 2.进re ...
- 【BZOJ】2331: [SCOI2011]地板
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2331 一眼插头DP... 考虑一个L形的东西,要构成它可以划分为两个阶段,即当前线段是拐了 ...
- 添加删除tag
为某个分支打tag git tag -a v1. 9fceb02 删除tag git tag -d test_tag git push origin --delete tag test_tag 推送: ...
- go 多态
demo1 // Sample program to show how polymorphic behavior with interfaces. package main import ( &quo ...
- [原][数学][C++][osg]空间向量OA到转到空间向量OB、以及四元素Q1转到Q2的函数
注意:Oa其实在OK的延长线上,上图只是为了好看才把Oa和OK分开了 算法需求如图所示: 已知空间向量OA和空间向量OB 我想算出OA向OB按某角度或者某时间移动 变成空间向量Oa的算法 先说废话:我 ...
- 关于VUE调用父实例($parent) 根实例 中的数据和方法
this.$parent或者 this.$root 在子组件中判断this.$parent获取的实例是不是父组件的实例 在子组件中console.log(this.$parent) 在父组件中con ...
- git checkout -b 分支name 分支的新建, 切换, 删除, 查看
$ git checkout 711 -berror: switch `b' requires a value 以上, 可以看出, 参数 -b 放到最后是错误的. 711@MININT- 64 /d ...