Hive SQL使用中遇到的问题与解决方案(持续更新
2017-08-11 18:06
405 查看
近期,因统计分析、数据处理的工作需求,经常使用Hive SQL,因此记录遇到的一些问题。
1、desc formatted 表名
----确定表的信息(行、列、存储路径),在确定Hive 数据仓库中表的存储路径时,很有帮助。
2、SQL GROUP BY 两个字段
group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素:
(1) 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
(2) 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having
例子
表;
Table:
Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
每门学科有多少同学选择,以下SQL
result:
Subject Count
------------------------------
ITB001 5
MKB114 2
接着统计,每门学科每学期有多少同学选择
result:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
总结:GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里。
而,GROUP BY X, Y意思是将所有具有相同X字段值和Y字段值的记录放到一个分组里。
3、sqoop回流任务报错,“Error during export: Export job failed”
用Sqoop将Hive中HDFS形式的数据回流到MySQL数据库,在确保sqoop命令行无误情况下,能回流部分数据但sqoop任务报错,“Error during export: Export job failed”。
解决方法:Hive 表的数据问题。需仔细检查要回流的Hive表中最好不要有NULL值,可通过nvl(字段名 , 0)或nvl(字段名 , '')将NULL值转换。
1、desc formatted 表名
----确定表的信息(行、列、存储路径),在确定Hive 数据仓库中表的存储路径时,很有帮助。
2、SQL GROUP BY 两个字段
group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素:
(1) 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
(2) 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having
例子
表;
Table:
Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
每门学科有多少同学选择,以下SQL
SELECT Subject, Count(*) FROM Subject_Selection GROUP BY Subject;
result:
Subject Count
------------------------------
ITB001 5
MKB114 2
接着统计,每门学科每学期有多少同学选择
SELECT Subject, Semester, Count(*) FROM Subject_Selection GROUP BY Subject, Semester;
result:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
总结:GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里。
而,GROUP BY X, Y意思是将所有具有相同X字段值和Y字段值的记录放到一个分组里。
3、sqoop回流任务报错,“Error during export: Export job failed”
用Sqoop将Hive中HDFS形式的数据回流到MySQL数据库,在确保sqoop命令行无误情况下,能回流部分数据但sqoop任务报错,“Error during export: Export job failed”。
解决方法:Hive 表的数据问题。需仔细检查要回流的Hive表中最好不要有NULL值,可通过nvl(字段名 , 0)或nvl(字段名 , '')将NULL值转换。
相关文章推荐
- EF7 使用过程中遇到的问题(持续编辑更新)
- Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题解决方法(持续更新)
- MySQL使用中遇到的问题及日常操作累积(持续更新)
- iOS 使用环信EaseUI3.0集成简单聊天遇到的问题!持续更新...
- 使用VS2010时遇到的一些小问题的解决方案(从各处搜罗总结的,不定期更新,向原作者致敬)
- 使用KVM虚拟机遇到的问题(持续更新)
- 在组建多节点openstack时可能遇到的问题的解决方案(持续更新)
- IDEA 使用时遇到过的问题(持续更新)
- sublime 使用中一些遇到问题解决方法和技巧汇总(持续更新)
- java web开发中遇到的问题及解决方案(个人学习日志,持续更新)
- Intellij IDEA2016.2.2工具使用遇到的问题以及部分快捷键(持续更新...)
- Eclipse的使用以及后续遇到的问题(持续更新)
- Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题(持续更新)
- 使用VS2010时遇到的一些小问题的解决方案(从各处搜罗总结的,不定期更新,向原作者致敬)
- 使用GIT期间遇到的问题(持续更新)
- 使用NDK r9c编译安卓项目并打包--遇到的问题【持续更新】
- 前端小技巧(持续更新,一些遇到问题的解决方案)
- Git使用总结(遇到问题,持续更新)
- Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题解决方法(持续更新)