Hive处理数据基本操作流程
Hive数据操作
1. 前置准备
实验环境
- Oracle Linux 7.4
- Java1.8.0_144
- Hadoop2.7.4
- Hive2.1.1
数据准备
2. 表操作
2.1 建表操作
create external table userinfos(uname string,salary float,family ARRAY<STRING>,reduces MAP<string,float>,address STRUCT<street:string,city:string,state:string,zip:int>
)
row format delimited fields terminated by '\001'
collection items terminated by '\002'
MAP KEYS terminated by '\003'
LINES terminated by '\n'
stored as textfile;
2.2 导入数据
将本地文件userinfo1.txt中数据导入表userinfo中
load data local inpath '/root/experiment/datas/hive/userinfo1.txt' into table userinfo;
将本地文件userinfo2.txt中数据导入表userinfo中
load data local inpath '/root/experiment/datas/hive/userinfo2.txt' into table userinfo;
2.3 查询表
查询指定字段
select uname,salary from userinfo;
查询数组中的值
SELECT uname,family FROM userinfo;
查询集合中的值
SELECT uname,reduces["pension"] FROM userinfo;
查询结构中的值
SELECT uname,address.city FROM userinfo;SELECT uname , address.zip FROM userinfo;
2.3.1 函数查询
算术运算符,使用列值进行计算
SELECT uname,reduces["pension"] +reduces["medical"]+reduces["provident"] FROM userinfo;
数学函数 Round(DOUBLE D)
SELECT uname,round(salary *(1-reduces["pension"] +reduces["medical"]+reduces["provident"])) FROM userinfo;
2.3.2 聚合函数
-- map端聚合的设置
-- 这个设置可以将顶层的聚合操作放在Map阶段执行,从而减轻清洗阶段数据传输和Reduce阶段的执行时间,提升总体性能。
-- 缺点:该设置会消耗更多的内存。
set hive.map.aggr=true;SELECT count(*) FROM userinfo;
2.3.3 表生成函数
SELECT explode(family) AS sub FROM userinfo WHERE uname='John';
2.3.4 条件查询
SELECT * FROM userinfo WHERE uname='John';
3. 流程总结
Hive常见set的配置设置
设置reduce数量(默认值-1)
set mapred.reduce.tasks=100;
set mapreduce.job.reduces=3;
修改表为内部表
set tblproperties(‘EXTERNAL’=‘FALSE’);
开启分桶表(默认false)
set hive.enforce.bucketing=true;
开启Hive中间传输数据压缩功能
set hive.exec.cmpress.intermediate=true;
开启mapreduce 中map 输出压缩功能
set mapreduce.map.output.compress=true;
开启hive 最终输出数据压缩功能
set hive.exec.compress.output=true;
开启mapreduce 最终输出数据压缩
set mapreduce.output.fileoutputformat.compress=true;
设置mapreduce 最终数据输出压缩为块压缩
set mapreduce.output.fileoutputformat.compress.type=BLOCK;
设置Fetch抓取为more(默认为more)
set hive.fetch.task.conversion=more;
开启本地模式(默认关闭)
文章仅做记录,涉及侵权内容请联系删除
Hive处理数据基本操作流程相关推荐
- 从Hive导出数据到Oracle数据库--Sqoop
首先解释一下各行代码: sqoop export # 指定要导入到Oracle的那张表(通常与hive中的表同名) --table TABLE_NAME # host_ip:导入oracle库所在的i ...
- hive导出数据到本地文件报错解决方法
hive导出数据到本地文件报错解决方法 参考文章: (1)hive导出数据到本地文件报错解决方法 (2)https://www.cnblogs.com/yaopeiyun/p/12232251.htm ...
- Hive Cilent数据操作
Hive Cilent数据操作 Hive运行命令方式有cli,jdbc.hwi.beeline.而我们经常使用的往往是cli shell 操作. cli shell hive -help hive - ...
- spark用scala读取hive表数据(不同版本区别)
spark用scala读取hive表数据 spark1.6写法: val conf = new SparkConf() val sc = new SparkContext(conf) ...
- JDBC实现从Hive抽取数据导入Oracle
环境:浙江移动华为云平台 云平台大数据采用了 Kerberos 认证. 开发历程: 1.在宁波大数据实验环境测试通过了JDBC实现从Hive抽取数据导入Oracle功能. 2.通过查看其它项目的数据库 ...
- sqoop导出数据单mysql_sqoop导出hive表数据到mysql
直接在mysql里从本地文件系统导入数据 mysql>LOAD DATA LOCAL INFILE 'C:\\Users\\asys\\Documents\\Tencent Files\\131 ...
- hive 如果表不存在则创建_从零开始学习大数据系列(四十七) Hive中数据的加载与导出...
[本文大约1400字,阅读时间5~10分钟] 在<从零开始学习大数据系列(三十八) Hive中的数据库和表>和<从零开始学习大数据系列(四十二)Hive中的分区>文章中,我们已 ...
- hive 如何将数组转成字符串_hive 将hive表数据查询出来转为json对象和json数组输出...
1.将hive表数据查询出来转为json对象输出apache 一.将查询出来的数据转为一行一行,并指定分割符的数据json 二.使用UDF函数,将每一行数据做为string传入UDF函数中转换为jso ...
- sqoop从musql导入到hive中数据缺失
sqoop从musql导入到hive中数据缺失 sqoop是大数据架构中常用的数据导入导出组件之一,只要简单的设置一些参数就可以将数据库的数据快速导入数据仓库中. 但在实际使用过程中,常常会碰到一些问 ...
最新文章
- 网站建设初学者一定要清楚网站建设基本因素和流程
- 搭建Git服务器环境----Git hooks代码自动部署
- [201804012]关于hugepages 3.txt
- Internet Explorer 9.0 正式版试用一点小总结
- 机器学习实战应用50讲(一)-使用student’s T检验的未必是学生
- php 彩票系统,hsyl12141511 一套完整的PHP版彩票系统 - 下载 - 搜珍网
- JSP→JSTL标准标签库简介与环境搭建、JSTL助手EL表达式EL隐式对象、标签→out、set、if、多选择配合、foreach、redirect、格式化、JSTL函数标签、自定义标签、标签类架构
- 公共代码参考(PackageManager)
- mysql查询一个月未登录_mysql函数实例-统计1周内未登陆的用户
- html5制作当当图书榜页面,当当图书.html
- ios android 视频格式,最佳iOS Android手机通用格式高清视频播放器: nPlayer-cue文件
- 【字节面试-字符串】判断一组字符串能否首尾相连
- 思考伯努利试验的两种组合思想
- 索尼PS4破解之用户层代码执行(Part2)
- php whois查询,php whois查询API制作方法
- python tokenize()_tokenize (Language) – Python 中文开发手册 - Break易站
- 2022-2028年中国尘螨脱敏治疗药物行业市场运行态势及发展战略研究报告
- 智能管家(原型)- 语音控制设备
- Python入门基础总结笔记——正则表达式
- 点评中国互联网CEO语录