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 ...
随机推荐
- CSS3实现基本图形
http://blog.csdn.net/laokdidiao/article/details/51189476 代码: <!DOCTYPE html> <html> < ...
- Ubuntu下codeblocks不能自动缩进的问题
如果在codeblocks中设置了自动缩进但是没有效果的话,在终端中执行sudo apt-get install codeblocks-contrib命令.
- Linux命令之sudo
在 Linux 系统中,由于 root 的权限过大,一般情况下都不使用它.只有在一些特殊情况下才采用登录root 执行管理任务,一般情况下临时使用 root 权限多采用 su 和 sudo 命令. ...
- 基于 Python 和 Pandas 的数据分析(7) --- Pickling
上一节我们介绍了几种合并数据的方法. 这一节, 我们将重新开始不动产的例子. 在第四节中我们写了如下代码: import Quandl import pandas as pd fiddy_states ...
- go 接口以及对象传递
// Sample program to show how to use an interface in Go. package main import ( "fmt" ) // ...
- 【NPOI】WebAPI-使用NPOI导出Excel
1.安装nuget包 2.封装方法 public byte[] ExportToByteArray(IEnumerable<string> headerText, IEnumerable& ...
- [calss*="col-"]匹配类名中包含col-的类名,^以col-开头,$以col-结尾
[class*= col-] 代表包含 col- 的类名 , 例 col-md-4 ,demo-col-2(这个是虚构的)等都可以匹配到. [class^=col-] 代表 以 col- 开头 ...
- PostCSS以及cssnext语法
什么是postcss postcss 一种对css编译的工具,类似babel对js的处理,常见的功能如: 1 . 使用下一代css语法 2 . 自动补全浏览器前缀 3 . 自动把px代为转换成 rem ...
- MyBatis的传入参数parameterType类型
1. MyBatis的传入参数parameterType类型分两种 1. 1. 基本数据类型:int,string,long,Date; 1. 2. 复杂数据类型:类和Map 2. 如何获取参数中的值 ...
- Python 数字(Number)
Python 数字(Number) Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间. 以下实例在变量赋值时 Number 对象 ...