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的一个数据仓库工具,可以将结构化的数据文件映射为一张表 ...
随机推荐
- 树状数组(一维&二维函数)
//一维 void add(int x,int p) { while(x<=n)t[x]+=p,x+=(x&(-x)); } int query(int x) { int ans=0; ...
- ward's method分层聚类凝聚法
ward's method是分层聚类凝聚法的一种常见的度量cluster之间距离的方法,其基本过程是这样的(参考:http://blog.sciencenet.cn/blog-2827057-9217 ...
- 【HDOJ6625】three arrays(Trie树,贪心)
题意:给定两个长均为n的序列a和b,要求两两配对,a[i]和b[j]配对的值为a[i]^b[j],求字典序最小的配对后的值序列 n<=1e5,a[i],b[i]<2^30 思路: 做法一: ...
- C#:XML操作类
写的一个XML操作类,包括读取/插入/修改/删除. using System; using System.Data; using System.Configuration; using System. ...
- php常用端口号
常见端口号 Nginx 80 Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. MySQL 3306 MySQL是一种关系数据 ...
- content is not supported outside 'script" or asp content' region
https://stackoverflow.com/questions/48915080/asp-net-content-is-not-supported-outside-the-script-or- ...
- ES命令
基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味 ...
- Node.js - 使用 Express 和 http-proxy 进行反向代理
安装 Express 和 http-proxy npm install --save express http-proxy 反向代理代码 proxy.js var express = require( ...
- Python笔记(十三)_os模块和os.path模块
os模块中关于文件/目录常用的函数使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('.'表示当前目录,' ...
- 使用notepad++写markdown的配置过程
已过时 下载最新的markdown插件,github 解压后将MarkdownViewerPlusPlus.dll复制一份到notepad就能看到markdown插件的小图标了 设置markdown高 ...