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的一个数据仓库工具,可以将结构化的数据文件映射为一张表 ...
随机推荐
- 【CF1243B1】Character Swap (Easy Version)【思维】
题意:给你两个字符串,问是否存在交换方案使得两个字符串变成一样的,方案为只交换一次且只交换s1与s2里的一个字符 题解:若一开始就相同,则存在交换方案 若一开始不同的位置为1个或大于2个,则不存在方案 ...
- 数据库的目录IDF打不开!附加失败
选择附加数据库,结果 武汉地图打不开 这是mapgis k9里面自带的地图 IDF:Identity Definition File?https://zhidao.baidu.com/question ...
- layoutSubviews 详解
ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size - (void)sizeToFit ------- - (void)layoutSubview ...
- web复制到剪切板js
web复制到剪切板 clipboard.js 好使!开源项目,下载地址: https://github.com/zenorocha/clipboard.js 使用方法: 引入 clipboard.mi ...
- .NETFramework:System.Collections.Generic.KeyValuePair.cs
ylbtech-.NETFramework:System.Collections.Generic.KeyValuePair.cs 定义可设置或检索的键/值对 1.返回顶部 1. #region 程序集 ...
- python学习之路---day16--面向对象
面向对象及成员的基本总结复习一:先用一个实际例子说明类: class 类名: class Car: #__init__ :使我们在具体构造一个对象时,使这个对象有具体的属性,像有名字啊,价格等等这样的 ...
- 阅读笔记02-读懂HTTPS及其背后的加密原理
1 为什么需要https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障. ...
- Android深度探索-卷1第十章心得体会
本章介绍了传统的printk 函数调试技术和其他的调试技术,如gdb gdbserver kgdb 对于复杂的Linux 驱动及HAL 等程序库,需要使用各种方法对其进行调试,如,设置断点.逐步跟踪 ...
- 应用安全-Web安全-越权漏洞整理
login->register GetPhone->GetPasswd GetPwd->GetPassword 遍历https://xx.com/contacts/new?user_ ...
- Vulnhub渗透测试练习(一) ----------Breach1.0
教程网址 https://www.freebuf.com/articles/system/171318.html 学习经验总结 1.使用jre的bin目录下的keytool命令来输入秘钥库口令进而获取 ...