hive 表创建及字段信息管理
1. 分区表创建及数据导入
1.1 创建分区表
-- 以日期pt分区,字段用\t分隔,输入格式为txt,存储格式为orc
use db_name;
drop table if exists tablename;
CREATE TABLE IF NOT EXISTS tablename (aid string,gender int, --性别age string, --年龄num bigint, value1 array<int>, value2 array<string>
)
partitioned by (pt string)
-- partitioned by (pt string comment "YYYY-MM-DD.HH_MM")
stored as orc
-- row format delimited fields terminated by '\t'
-- STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
-- OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
;-- 存储格式亦可指定为txt
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
1.2 向分区表导入数据
1.2.1 从其他表导入
-- 从其他表导入
-- (1) XX 表中没有pt字段
use db_name;
insert overwrite table tablename partition(pt='2020-08-12')
select a.*
from XX a;
-- (2) 以XX表中pt字段指定分区字段
use db_name;
insert overwrite table tablename partition(pt)
select a.*
from XX a;
1.2.2 从本地文件导入
-- filename 为txt格式
load data local inpath '/home/zz/filename' overwrite
into table tablename partition(pt='2020-08-12');
1.3 删除hive表的一个分区
alter table tablename drop if exists partition(pt='2020-08-12');
1.4 查看表相关信息
--1.查看hive建表语句,在hdfs中的位置
show create table tablename;--2.查看hive表元数据信息(创建时间,字段,位置,数据条数,数据大小)
desc formatted tablename;--3.查看分区表元数据信息:
desc formatted tablename partition(pt='2020-08-12');--4.查看表分区:
show partitions tablename;
2. 创建hive 临时表
2.1 使用建表语句创建
可以指定分隔符,以orc格式存储数据
orc格式对数据进行了压缩,压缩比 1:20左右
-- 指定"\t"作为分隔符
use db_name;
drop table if exists tablename;
CREATE TABLE tablename (id string,name string,age int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat';-- 从本地文件加载数据到hive
load data local inpath '/home/zz/filename' overwrite into table tablename;
2.2 直接从其他表导入数据
stored as 可以指定数据存储方式orc,textfile
create table XX stored as textfile -- 以textfile格式保存表
as select *
from tablename;
2.3 建表时使用 loaction 指定数据位置
use db_name;
drop table if exists tablename;
CREATE TABLE tablename (id string,name string,age int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
LOCATION 'hdfs://nswx/user/hive/warehouse/aa.bb';
-- LOCATION 's3://${s3_bucket}/db_name/table_name'
-- 亦可本地文件
LOCATION '/home/zz/filename'
3. hive表重命名
alter table table_name rename to new_table_name;
4. 表字段修改
hive表,能增加列,不可以删除列,但可以改列名;
对于分区表,要使用cascade才会对所有分区生效,否则历史分区不会生效。
--修改字段名
alter table tablename change value1 value1_new string [cascade];
--修改字段类型
alter table tablename change column value1 value1 int [cascade];
--增加新字段
alter table tablename add columns(value1 int) [cascade];
alter table tablename add columns(encrypt_phone string comment '手机加密',registered_version_name string comment '注册版本号名称'
) cascade;
在指定字段(value1)后添加新字段(value7 int)
alter table XX add columns(value7 int) [cascade];
alter table XX change column value7 value7 int after value1 [cascade];
hive 表创建及字段信息管理相关推荐
- hive表指定分区字段搜索_Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件...
首先说一下,这里解决的问题应用场景: sparksql处理Hive表数据时,判断加载的是否是分区表,以及分区表的字段有哪些?再进一步限制查询分区表必须指定分区? 这里涉及到两种情况:select SQ ...
- spark sql 查看分区_Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件
首先说一下,这里解决的问题应用场景: sparksql处理Hive表数据时,判断加载的是否是分区表,以及分区表的字段有哪些?再进一步限制查询分区表必须指定分区? 这里涉及到两种情况:select SQ ...
- hive表指定分区字段搜索_hive导出分区表到mysql 分区字段值怎么取
匿名用户 1级 2018-07-16 回答 如何用sqoop将hive分区表信息导入到mysql命令 直接导入hive表 sqoop import --connect jdbc:postgresql: ...
- jpa在自己创建表的是字段名不一致_用 数据透视表 完成 Excel多表合并
一般情况下,数据透视表只能汇总一个表格中的数据.即使使用多区域汇总,也只能对多表的单列内容进行数据汇总,而多列却无法实现.前段时间也推送过Power Query的方法,但它有版本限制.而今天宏兴会计培 ...
- Hive Sql 大全(hive函数,hive表)
Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...
- mysql血缘 表级血缘 字段级血缘GUDU GSP,JSQL PARSER,ANTLR MYSQL,DRUID
** 目的: ** 分析mysql的表级和字段级血缘,本文给出他人源码或示例 工具 GUDU-SQLPARSER GSP JSQL-PARSER antlr DRUID 横向对比 名称 开源 功能 优 ...
- hive中json格式字段解析及map使用
json 如果hive表中有扩展字段,那么扩展字段格式最常见的就是json格式,所以如何解析json字符串相对繁琐(虽然没啥技术
- Hive表结构操作(增加列,删除列,修改列,移动列)
前言 Hive 表结构操作 内容 1.给hive表中添加某个字段: 格式: alter table 表名 add columns (字段名 字段类型 comment '字段描述'): 示例1: alt ...
- hive SQL 创建数据库,创建hive表、查询时,其表名,字段,统统不区分大写(在底层一律转换为小写)
hive SQL 创建数据库,创建hive表.查询时,其表名,字段,统统不区分大写(在底层一律转换为小写) (1).默认default数据库 hive默认自带一个名为default的数据库,如果建表时 ...
最新文章
- .NET简谈网络系统大局观
- python如何统计出现的次数_Python统计日志中每个IP出现次数的方法
- MySQL使用CREATE INDEX创建索引
- CCS5.5环境下使用clock()函数测试程序段运行时间
- html怎么显示返回的图片,想要预览文件或是图片,将后端返回的信息转换为前端可以正常显示的格式...
- ifix如何设画面大小_如何让你的视频又小又清晰?视频编码输出软件来了
- mysql慢sql增加读写分离_MySQL主从同步+读写分离
- 【面向对象】聚合的四种语义
- 短视频自媒体成功的秘诀就一个字:真
- apache+php
- 小语种nlp文本预处理——数据清洗
- c语言实现ftp客户端,下载ftp的文件内容信息
- 鸿蒙太空是什么意思,[评论]林黛玉:“眼泪还债”暗洒闲抛知为谁?
- linux拷贝文件前几行,Linux显示文件前几行、拷贝文件前几行、删除文件前几列...
- 如何获取显示器的EDID信息
- springboot多模块项目创建及添加子模块过程
- 问题:The given artifact contains a string literal with a package reference 'andro
- Java判断一个序列是否可由给定序列通过栈操作获得(ABCDEF)
- 使用PowerShell获取Trustedinstaller权限
- 实现repeat函数