《KyLin学习理解》-03-KyLin的坑总结
坑1:KyLin中不能使用 != 不等于符合,否则会报错,但是某些业务需要用不等于,kylin中也不能使用 <> 不等于,用or的话,可能会短路。
解决:新建一个字段区分,不等于的两种状态。
坑2:KyLin中不能使用 双引号,否则保错
Error while executing SQL "select myview.*,mycase.*,wb.*,hotel.*,p_status from myview inner join mycase on myview.v_code=mycase.c_code inner join wb on myview.v_w_id=wb.w_id inner join hotel on myview.v_h_id=hotel.h_id inner join p_case on myview.v_code=p_case.p_code where p_isend = 1 and v_code="A3402024100002011120248" LIMIT 50000": From line 1, column 274 to line 1, column 298: Column "A3402024100002011120248" not found in any table
解决:使用单引号
坑3:假设有一段数据
1 2006/6/21 14:15 姚姗家被盗案
2 2006/6/22 14:15 姚姗家被盗案
3 2006/6/23 14:15 姚姗家被盗案
4 2006/6/24 14:15 姚姗家被盗案
5 2006/6/25 14:15 暂无
6 2006/6/26 14:15 暂无
如果有业务:求第三条数据的前后两天的数据。我们需要计算,把第三条的数据先查询出来时间,然后进行运算,然后,再查询,如果时间格式是这样的是没办法实现的,我们可以,在hive里多加1个字段存储时间戳
变成如下格式:
1 2006/6/21 14:15 1150956900000 姚姗家被盗案
2 2006/6/22 14:15 1150956900000 姚姗家被盗案
3 2006/6/23 14:15 1150956900000 姚姗家被盗案
4 2006/6/24 14:15 1150956900000 姚姗家被盗案
5 2006/6/25 14:15 1150956900000 暂无
6 2006/6/26 14:15 1150956900000 暂无
然后查询的时候
select * from 表名 where ( 字段-86400000 * 天数 )< 字段 and 字段< (字段+ 86400000*天数 ) ;
时间问题就解决了。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: Spark学习-SparkSQL--02-Spark history Server