impala语法

ads

点击上方卡片进入笑看风云路主页

关注后点击右上角 “设为星标

比别人更快接收好文章



前言

最近一个小伙伴,突然接到业务抛出来的一个问题,说XX表的XX字段没有数据。那赶紧去Hue上去排查一下吧,在Hive上执行没问题,但在Impala上执行确实没有数据;通常业务那边使用Impala进行查询分析数据,这个小伙伴新来的,不太了解情况,以为在Hive上跑成功了就可以了,并没有在Impala上进行验证,才有了上述问题的出现。

好了,对代码进行了简化,大概长这个样:

select substring(tradetime,0,8) from test; -- 截取tradetime的前八位日期数据

事情很明了了,那么问题就出在substring这个函数上了!今天就来看下substring在Hive 和 Impala中用法有啥差异吧!

Hive中的substring语法

语法1:截取从start开始到末尾的字符串

substring(string A,int start

语法2:截取从start开始,length长度的字符串

substring(string A, int start,int length)

string A:输入需要处理的字符串
int start:开始截取的位置索引,int类型
int length:截取的长度,int类型

Impala中的substring语法

语法1:截取从start开始到末尾的字符串

substring(string a,int start

语法2:截取从start开始,length长度的字符串

substring(string a, int start,int len)

string a:输入需要处理的字符串
int start:开始截取的位置索引,int类型
int len:截取的长度,int类型

差异

从语法定义上看是没有区别的,但是start的取值则是有差异的:

Hive中,start输入0和1结果相同,表示从头开始计算
Impala中,如果从头开始计算,start输入必须是1,否则输入0的话,就会出现数据为NULL的问题。

注意:start是可以设置为负数的,Hive和Impala输出的结果是没有差别的。

--END--

非常欢迎大家加我个人微信有关大数据的问题我们一起讨论

长按上方扫码二维码,加我微信



最后编辑于:2024/1/9 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com