Hive
积跬步至万里
想,都是问题;做,才有答案!
展开
-
Hive坑之Where语句的“不等于”
通常,我们在写sql的时候用where过滤不等于的条件,都会使用"!=" 或者 “<>”。我们也都知道hql和mysql有很大共同之处,但是,往往就会出现一些意料之外的事情。hive的"不等于" !或<> 会把null值也去掉,所以要加上where rate!=‘D’ or rate is null;或者where rate<>‘D’ or rate is null;...原创 2021-03-05 16:44:52 · 6287 阅读 · 0 评论 -
rank()、dense_rank()和row_number()的区别
函数说明rank() 排序相同时会重复,总数不会变dense_rank() 排序相同时会重复,总数会减少row_number() 会根据顺序计算这三个函数很经常使用,也很经常被混淆,在面试中也是常常被提及,下面提供一个案例来帮助理解,以及最后用一点小思维帮助大家记忆区分。案例:1)数据准备2)需求计算每门学科成绩排名。3)创建本地score.txt,导入数据[ysh@hadoop102 datas]$ vi score.txt4)创建hive表并导入数据create t原创 2021-03-01 14:52:51 · 1890 阅读 · 5 评论 -
Hive的日期函数使用大全
目录1. date_format 格式化日期2. date_add, date_sub 日期的加减3. current_date 获取当前日期4. current_timestamp 获取当前时间5. next_day 取该日期的下一个周几的日期6. last_day 取当月的最后一天日期7. datediff 两个日期之间的日期差8. dayofmonth 查询该日期在本月的第几天9. add_months 日期加几个月10. year 获取时间年份11. month 获取时间月份12. day 获取时间原创 2021-03-01 13:18:37 · 3707 阅读 · 0 评论 -
SQL 错误 [40000] [42000]: Error while compiling statement: FAILED
错误如下:SQL 错误 [40000] [42000]: Error while compiling statement: FAILED: SemanticException table is not partitioned but partition spec exists: {month=null, day=null}解决方法:解决办法,在sql语句前面加SET hive.exec.dynamic.partition = true ; SET hive.exec.dynamic.partiti原创 2021-02-25 11:59:04 · 13851 阅读 · 0 评论 -
insert into和insert overwriter 的区别
insert into和insert overwriter 的区别?insert into:直接向表或静态分区中插入数据 insert overwriter:先清空表中原有的数据,再向表或静态分区中插入数据。hive与mysql的insert语法又有区别:hive在insert into | insert overwriter后面需要加table关键字,再加table_namemysql在 insert into | insert overwriter后面直接加table_name.原创 2021-02-25 11:54:48 · 1533 阅读 · 0 评论 -
静态分区和动态分区
静态分区SP(static partition) 1、静态分区是在编译期间指定分区名,分区的值是确定的 2、支持load和insert两种插入方式##加载数据指定分区load data local inpath '/root/student.txt' into table day_part partition(year=2021,month=02);##新增分区指定分区名alter table day_part add partition(year=2021,month=01) pa..原创 2021-02-25 11:49:07 · 1727 阅读 · 0 评论