hive基础知识or基本操作命令
MySQL的密码是:123456
1、hive创建标准表(以后均可以按照这样创建):
create [external] table [if not exists] records
(year STRING [comment "year备注消息"],
temperature INT [comment "temperature 备注消息"],
quality INT [comment "quality 备注消息"]
)
[comment "表records备注消息"]
[partitioned by (col_name,col_name, ... )]
[clustered by (col_name,....) into nums buckets]
[ sorted by (col_name [ASC | DESC],...) into num_buckets BUCKETS ]
row format delimited fields terminated by ‘\t’;
[stored as file_format]
[location hdfs_path]
解析:第一行声明一个records表,包括三列(3个字段):year,temperature,quality。分别指定数据类型为:string,int,int。//第一行解析与MySQL创建表一样
第二行是HiveQL所特有,数据文件中每一行都是由制表符分隔的文本。若将文本导入由本地或者hdfs导入hive时必须按照此格式即每行三个字段,每个字段由制表符分隔,每行由换行符分隔
注意:row format delimited 分隔符设置的开始语句
fields terminated by ‘\t’ 设置字段与字段之间的分隔符,此时使用制表符分隔
collection items terminated by "." 设置一个复杂类型(array,struct)字段中的各个item之间的分隔符,此时用点表示
map keys terminated by "." 设置复杂类型map字段的key和value之间的分隔符,此时用电表示
lines terminated by 设置行与行之间的分隔符
例如:row format delimited
fields terminated by '\t'
collection items terminated by ','
map keys terminated by ':'
lines terminated by '\n';
OK
Time taken: 0.287 seconds
ROW FORMAT DELIMITED 必须在其它分隔设置之前,也就是分隔符设置语句的最前
LINES TERMINATED BY必须在其它分隔设置之后,也就是分隔符设置语句的最后,否则会报错
PS:表名records在hdfs中其实是目录名;
2、将数据文件导入hive
load data local inpath “/home/hdc/sample.txt”
overwrite into table records;
解析:将本地文件sample导入records表中,其中overwrite可加可不加,如果加表示hive删除表对应目录中已有的所有文件,再将sample.txt文件送到records下;
若不加表示hive简单的把sample.txt文件加入目录(若此目录有同名的文件则自动修改文件存储)。
3、--将HDFS中 /input/student.txt 导入到t3(此种方法是移动即student.txt文件将在t3文件夹下)
load data inpath '/input/student.txt' overwrite into table t3;
4、将数据导入分区表:
load data local inpath '/home/hdc/data_1.txt' into table partition_table partition(gender='M');
5、导出数据本地或者hdfs上:
insert overwrite local directory ‘/home/hdc’ //除掉local,把路径改成hdfs上的路径就可以导入到hdfs上
select * from student
6、通过查询语句向表中插入输入(从另外一个中的数据复制到另外一个表,两个表的字段要相同,并且其分区字段也相同即两表结构要一样)
静态插入:
insert into table employee //insert overwrite table emplyee
partition(country='US',state='OR')
select * from staged_emplyee se
where se.cnty='US' and se.st='OR';
动态插入(以select语句后面的两个字段为分区字段):
insert into table employee
partition(country,state)
select ....,se.cnty,se.st
from staged_emplyee se;
可以混合使用静态插入和动态插入(静态分区间键必须在动态分区键的前面)
insert overwrite table emplyee
partition(country='US',state)
select ....,se.cnty,se.st
from staged_emplyee se
where se.cnty='US'
7.创建外部表及其指定数据位置
create table stu(name string,score int)
row format delimited fields terminated by '\t'
location '/data'(外部表关联hdfs上的文件)
hive基础知识or基本操作命令的更多相关文章
- 《Programming Hive》读书笔记(两)Hive基础知识
<Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...
- Hive基础知识梳理
Hive简介 Hive是什么 Hive是构建在Hadoop之上的数据仓库平台. Hive是一个SQL解析引擎,将SQL转译成MapReduce程序并在Hadoop上运行. Hive是HDFS的一个文件 ...
- Hive基础知识
一.产生背景 1.MapReudce编程繁琐,需要编写大量的代码 2.HDFS中存放的都是文件,在HDFS中没有Scheme的概念,无法用SQL进行快速的查询. 二.Hive的概念 Hive是基于Ha ...
- (cdh)hive 基础知识 名词详解及架构
过程 启动 hive 之后出现的 CLI 是查询任务的入口,CLI 提交任务给 Driver Driver 接收到任务后调用 Compiler,Executor,Optimizer 将 SQL 语句转 ...
- hive基础知识五
Hive 主流文件存储格式对比 1.存储文件的压缩比测试 1.1 测试数据 https://github.com/liufengji/Compression_Format_Data M 1.2 T ...
- hive基础知识四
1. hive表的数据压缩 1.1 数据的压缩说明 压缩模式评价 可使用以下三种标准对压缩方式进行评价 1.压缩比:压缩比越高,压缩后文件越小,所以压缩比越高越好 2.压缩时间:越快越好 3.已经压缩 ...
- hive基础知识三
1. 基本查询 注意 SQL 语言大小写不敏感 SQL 可以写在一行或者多行 关键字不能被缩写,也不能分行 各子句一般要分行写 使用缩进提高语句的可读性 1.1 全表和特定列查询 全表查询 selec ...
- hive基础知识二
1. Hive的分区表 1.1 hive的分区表的概念 在文件系统上建立文件夹,把表的数据放在不同文件夹下面,加快查询速度. 1.2 hive分区表的构建 创建一个分区字段的分区表 hive> ...
- hive基础知识一
1. Hive是什么 1.1 hive的概念 Hive:由Facebook开源,用于解决海量(结构化日志)的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表 ...
随机推荐
- 【转】iis解决应用程序池**提供服务的进程意外终止进程ID是**。进程退出代码是'0x80'
转自:http://blog.sina.com.cn/s/blog_56a68d5501013xdd.html 我们公司旗下的红黑互联会遇到这种问题 事件类型: 警告事件来源: W3SVC事件种类: ...
- Http发送Json
public static JSONObject post(String url,JSONObject json){ HttpClient client = new DefaultHttpClient ...
- P3956棋盘
传送 这看起来有点像个搜索,那我们就用搜索试试. dfs?bfs? 其实都可以,但是窝只会dfs.. 既然这里要用dfs,那么就要把每次搜到(m,m)时,使用的金币数量进行比较,取最小值. 在搜索过程 ...
- 五一清北学堂培训之数据结构(Day 1&Day 2)
Day 1 前置知识: 二进制 2.基本语法 3.时间复杂度 正片 1.枚举 洛谷P1046陶陶摘苹果 入门题没什么好说的 判断素数:从2枚举到sqrt(n),若出现n的因子,则n是合数 ...
- ''.startswith() and ''.endswith() instead of string slicing to check for prefixes or suffixes.
w http://legacy.python.org/dev/peps/pep-0008/ Yes: if foo.startswith('bar'):No: if foo[:3] == 'bar' ...
- JS - 迭代协议
Iteration protocols | MDN 可迭代协议(iterable protocol) 迭代器协议(iterator protocol)
- linux新建用户并修改提示符
1 新建用户 # useradd –d /home/ap/testapp -m testapp 此命令创建了一个用户testapp ,其中-d和-m选项用来为登录名testapp 产生一个主目录/ho ...
- python通过post提交数据的方法
python通过post提交数据的方法 本文实例讲述了python通过post提交数据的方法.分享给大家供大家参考. 具体实现方法如下: # -*- coding: cp936 -*- imp ...
- vue.js + element 搭建后台管理系统 笔记(一)
此文仅记录本人在搭建后台系统过程中遇到的难点及注意点,如果能帮到各位自然是极好的~~~ 项目主要架构:vueJS.elementUI.scss 一.项目初始化 首先需要安装nodejs,安装方法就不在 ...
- js-判断当前页面是否在移动端打开显示的
if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)==false) { //该页面不是在移动端打开的, }