Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

1.hive创建数据库

CREATE DATABASE|SCHEMA [IF NOT EXISTS] <database name>;

2.hive创建表

hive里一般有两种表的结构,表(内部表)和外部表,以下分别是两种表的创建代码:

--内部表
CREATE TABLE phone_info(id int, name String, storage String, price double)
ROW FORMAT DELIMITED //代表一行是一条记录
FIELDS TERMINATED BY '\t'//列是按照table键分开
STORED AS TEXTFILE[SEQUENCEFILE];//二种最常见的存储格式,一般可以不写 --外部表
CREATE EXTERNAL TABLE phone_external(id int, name String, price double)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '</zengzc/phone.txt>';//这里填写外部表数据的hdfs地址,若不指定,则默认存储于/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里;这里也是内部表的存储位置。

3.hive表中导入数据

load data local inpath '/home/zengzc/xxx.txt' into table phone_info;

4.hive删除表

DROP TABLE IF EXISTS phone_info;

5.hive创建临时表存储中间结果

CREATE TABLE temp_info AS
SELECT id phone_id, name phone_name, price FROM phone_info
SORT BY phone_id;

6.hive简单的查询语句

SELECT * FROM temp_info;

SELECT id phone_id,name phone_name FROM phone_info;

SELECT a.ip,a.name,b.username FROM phone_info a INNER JOIN user b on (a.ip=b.ip);

7.hive批量插入数据到表

CREATE TABLE phone_info_like LIKE phone_info; //复制表的结构

INSERT INTO phone_info_like SELECT * FROM phone_info;

INSERT OVERWRITE phoen_info_like SELECT * FROM phone_info; //into是追加数据,overwrite是覆盖以及存在的数据,属于重复性校验

8.hive分区表

CREATE TABLE part_table (
id int,
name String,
ip String,
city String,
date String
)
PARTITIONED BY (part_flag String) //这里的分区字段可以是表中字段也可以是指定的字段
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','; load data local inpath '/home/zengzc/test.txt' into table part_table partition(part_flag='part1');
load data local inpath '/home/zengzc/test1.txt' into table part_table partition(part_flag='part2'); select * from part_table where part_flag='part1';

最新文章

  1. 【转】Linux C动态内存泄漏追踪方法
  2. PHP的数据类型总结
  3. WCF ABC
  4. Ruby-调用windows窗体
  5. ruby -- 进阶学习(六) devise修改邮件发送者邮箱
  6. 2013年arcgis培训
  7. 通过gdb调试分析Linux内核的启动过程
  8. erlang局域网内节点通信——艰难四步曲 (转)
  9. 关于贴友的一个书本页面简单布局(html+css)的实现
  10. SQL参数化查询的问题
  11. [UWP小白日记-2]SQLite数据库DOME
  12. 跨专业学习编程的苦逼生活 QWQ嘤嘤嘤
  13. 数据泵 TTS(传输表空间技术)
  14. Java 别名(Aliasing)
  15. Kubernetes e2e test and test framework
  16. ES6新增对象方法的访问描述符:get(只读)、set(只写)
  17. 由浅入深的讲述Get和Post的区别
  18. express koa koa2 优缺点分析
  19. 【教你玩转云计算】在阿里云一键安装快速部署Oracle11g
  20. 使用Jmeter对API进行性能测试

热门文章

  1. v-echarts安装
  2. 如何在Camtasia中对录制视频添加注释
  3. 到底为什么不要用SELECT *
  4. 唯一key的生成规则,可自己视情况改动
  5. [python学习手册-笔记]003.数值类型
  6. 惠州发布5G任务计划表,将出台智慧灯杆建设计划与技术规范
  7. 编程入门选什么语言好?C 语言还是Python ?为你解析
  8. X86中断/异常与APIC
  9. http 文件上传
  10. Kafka入门之consumer--rebalance流程