Hive建表高阶语句、Hive视图
Hive建表高阶语句、Hive视图
- Hive建表高阶语句 - CTAS and WITH
- 创建临时表
- Hive视图(Views)
- 视图概述
- 应用场景
- Hive视图操作
- Hive侧视图(Lateral View)
Hive建表高阶语句 - CTAS and WITH
- CTAS – as select方式建表
create table ctas_employee as select * from employee;
注:CTAS不能创建partition, external, bucket table
- CTE (CTAS with Common Table Expression)
create table jobs_details as
with
tmp as (select jobs from employee_partition where info.gender='Male'),
t2 as (select jobs from employee_partition where info.gender='Female')
select tmp.jobs male_job,t2.jobs female_job from tmp,t2;
- Like
create table employee_like like employee;
创建临时表
临时表是应用程序自动管理在复杂查询期间生成的中间数据的方法
- 表只对当前session有效,session退出后自动删除
- 表空间位于/tmp/hive-<user_name>(安全考虑)
- 如果创建的临时表表名已存在,实际用的是临时表
#创建临时表(退出hive后临时表会自动删除)
create temporary table j_d as
with
tmp as (select jobs from employee_partition where info.gender='Male'),
t2 as (select jobs from employee_partition where info.gender='Female')
select tmp.jobs male_job,t2.jobs female_job from tmp,t2;
Hive视图(Views)
视图概述
通过隐藏子查询、连接和函数来简化查询的逻辑结构
虚拟表,从真实表中选取数据
只保存定义,不存储数据
如果删除或更改基础表,则查询视图将失败
视图是只读的,不能插入或装载数据
应用场景
将特定的列提供给用户,保护数据隐私
查询语句复杂的场景
Hive视图操作
视图操作命令:create、show、drop、alter
- 创建视图
create view 视图名 as select statement; - 查找视图
show tables;(show views 在 hive v2.2.0之后)
show create table 视图名; - - 查看视图定义 - 删除视图
drop 视图名; - 更改视图
alter view 视图名 set tblproperties(‘comment’ = ‘This is a view’) - -更改视图属性
alter view 视图名 as select statement; - - 更改视图定义
#创建视图
create view v_e_p as select distinct name,address[0],info.age
from employee_partitione join a_p a on e.add=a.test;
#查看视图定义
show create table v_e_p;
select * from v_e_p;
#查看视图结构
desc v_e_p;
Hive侧视图(Lateral View)
- 常与表生成函数结合使用,将函数的输入和输出连接
- OUTER关键字:即使output为空也会生成结果
select name,work_place,loc from employee lateral view outer explode(split(null,',')) a as loc;
- 支持多层级
select name,wps,skill,score from employee
lateral view explode(work_place) work_place_single as wps
lateral view explode(skills_score) sks as skill,score;
- 通常用于规范化行或解析JSON
案例:
#1、hsfd 创建一个wctestw
hdfs dfs -mkdir /wctest
#2、把a.text上传到hdfs中的wctest文件夹
hdfs dfs -put a.txt /wctest
#3、hive 创建外部表wctest
create external table wctest(line string)
stored as textfile
location '/wctest';
#查看外部表wctest数据
select * from wctest;
#4、侧视图进行查询计数
select word,count(word) from wctest
lateral view explode(split(line,' ')) a as word
group by word;
Hive建表高阶语句、Hive视图相关推荐
- java hive建表_java jdbc 操作 hive 建表 load 数据
// 需要引入 hadoop & hive jar import java.sql.Connection; import java.sql.DriverManager; import java ...
- hive建表的标准格式及其建表属性详解1
Hive建表是学习使用hive的第一步,然后才能基于表对hive数据仓库进行操作.学习建表前,首先要知道hive表的构建属性 ,知道哪些属性是固定的,哪些属性是可以定制的等等. 一.标准hql建表语法 ...
- 使用java代码编写脚本,把oracle建表语句变成hive建表语句
使用java代码编写脚本,把oracle建表语句变成hive建表语句 java代码 测试oracle.sql 生成hive创表语句 java代码 import java.io.File; import ...
- Oracle、Hive建表语句
1.Oracle建表 drop table T_PSSC_TRAN_PORTRAIT_CENTER; create table T_PSSC_TRAN_PORTRAIT_CENTER ( OBJ_ID ...
- 大数据单机学习环境搭建(5)Hive建表DDL详解
专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...
- hive建表与mysql建表的区别
现在大数据时代我们一般企业里都会将数据存储在hadoop这样的分布式系统里,我们可以编写hive-sql对数据进行分析,但是一般的业务系统是基于mysql这样的关系型数据库来进行可视化的,所以将hiv ...
- 【Hive】Hive建表基本语法及解释
Hive建表基本语法 CREATE [EXTERNAL] TABLE [IF NOT EXIST] table_name [(col_name data_type [COMMENT COL_COMME ...
- MySQL——高阶语句、存储过程(下)
MySQL--高阶语句(下) 一.数据库函数 1.数学函数 2.聚合函数 3.字符串函数 4.日期时间函数 二.存储过程 1.概述 2.简介 3.优点 4.创建存储过程 调用存储过程 带参数的存储过程 ...
- MySQL——高阶语句(上)
MySQL高阶语句(上) 一.MySQL高级语句 1.ORDER BY----按关键字排序 单字段排序 多字段排序 2.OR/AND----或/且 3.DISTINCT----查询不重复记录 4.GR ...
最新文章
- 机房收费系统【VB版】——上下机
- Linux内核常见FAQ
- 全球域名商解析新增保有量15强:爱名网落榜
- java压缩_Java压缩
- 聊聊composer.lock
- 中国程序员生存现状?
- 下载android 源码对应的kernel版本
- [转]有关TinyXML使用的简单总结
- Linux常用的查找命令总结
- sketch插件的学习 末尾链接有彩蛋
- 【机器学习】BP算法推导
- 工程施工工地进度监控带天气经纬度相机(监理日志不再难写)
- 阿里云CDN是什么?阿里云CDN配置与购买优惠教程
- 在PyG上构建自己的数据集
- win7系统服务器角色向导,Windows Server2012入门-添加服务器角色和功能
- Adoby photoshop cs5永久序列号
- app应用程序的好处
- C语言通过for循环控制计时,C语言中关于时间的函数
- pytorch实现 chatbot聊天机器人
- 一维卷积(1D-CNN)、二维卷积(2D-CNN)、三维卷积(3D-CNN)