您的位置:首页 > 数据库

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
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值转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐