Beeline里面执行hive脚本 函数nvl2()与replace()报错
Beeline里面执行hive脚本函数nvl2()与replace()报错
写脚本的时候是在impala里面执行的,都正常,但是转换为调度的时候是在beeline里面执行的 就会有问题了. 详情如下:
replace函数: (去掉字符串里面所有空格)
select replace(' hell o wor d ',' ','');
impala执行命令: select replace(' hell o wor d ',' ','');
impala执行结果为: helloworld
beeline执行命令: select replace(' hell o wor d ',' ','');
beeline执行结果为:Error: Error while compiling statement: FAILED: SemanticException Line 0:-1 Invalid function 'replace' (state=42000,code=40000)
beeline解决方案: 使用 translate函数替换replace函数
beeline执行命令: select translate(' hell o wor d ',' ','');
beeline执行结果为: helloworld
nvl2()函数: 判断第一个表达式是否为空,如果为空则取第三表达式的值,如果不为空则取第二个表达式的值
select nvl2('FEIXIA',concat(translate('DU AN',' ',''),' ',translate('FEI XIA ',' ','')),NULL);
impala执行命令: select nvl2('FEIXIA',concat(translate('DU AN',' ',''),' ',translate('FEI XIA ',' ','')),NULL);
impala执行结果: DUAN FEIXIA
beeline执行命令: select nvl2('FEIXIA',concat(translate('DU AN',' ',''),' ',translate('FEI XIA ',' ','')),NULL);
beeline执行结果: Error: Error while compiling statement: FAILED: SemanticException [Error 10011]: Line 1:7 Invalid function 'nvl2' (state=42000,code=10011)
beeline解决方案: 使用case when 处理
beeline执行命令: select case when nvl('FEIXIA','')<>'' then concat(translate('DU AN',' ',''),' ',translate('FEI XIA ',' ','')) else '' end englishName;
beeline执行结果: DUAN FEIXIA
Beeline里面执行hive脚本 函数nvl2()与replace()报错的更多相关文章
- create-react-app 创建的项目执行npm run eject后,运行报错
create-react-app 创建的项目执行npm run eject后,运行报错:Cannot find module '@babel/plugin-transform-react-jsx-so ...
- HUE中Oozie执行Hive脚本
Oozie执行hive,传入参数1. 新建一个workflow 2. 拖入一个hive2 3. hive脚本如下 CREATE TABLE IF NOT EXISTS spider_tmp.org_i ...
- hive日志位置(日志定位报错:Failed with exception Unable to move sourcehdfs://namenode/tmp/hive-pmp_bi/h)
Hive中的日志分为两种 1. 系统日志,记录了hive的运行情况,错误状况. 2. Job 日志,记录了Hive 中job的执行的历史过程. 日志查看方法 1,在本地运行机器上 hive日志存储位置 ...
- hive导出数据到本地文件报错解决方法
报错信息: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Unable to move so ...
- 写交互式脚本时,遇到到报错:not a regular file
场景:在写两台ubuntu之间需要交互式登录操作shell脚本.就是在ubantu A上,做点什么事,然后远程到ubuntu B上进行操作,shell脚本存放在ubuntu A上. 我遇到这个报错:n ...
- 【java-console】如何双击运行可执行jar包及遇到依赖dll报错问题的解决办法
如何配置双击运行可执行jar包的步骤,请移步到 这里 查看具体的操作,此处不再介绍. 本文主要解决如何处理依赖dll报错的问题解决办法. 我有一个jar包可执行文件运行需要依赖第三方的dll文 ...
- Shell脚本中"command not found"报错处理
字符串的定义与赋值 # 定义STR1变量,值为abc STR1 = "abc"(错误写法) STR1="abc"(正确写法) 在编写java代码时会考虑到格式化 ...
- jquery easyui datagrid 空白条处理 自适应宽高 格式化函数formmater 初始化时会报错 cannot read property 'width'||'length' of null|undefined
1---表格定义好之后右侧可能会有一个空白条 这个空白条是留给滚动条的,当表格中的一页的数据在页面中不能全显示时会自动出现滚动条,网上有很多事要改源码才可以修改这个,但是当项目中多处用到时,有的需要滚 ...
- Hive use mapreduce引擎 bsonFile splits报错处理
Hive use mapreduce引擎 1. 出现报错.关于bsonFile的.禁止hdfs里面存储的bson文件自动splits. 可以在hive-site.xml文件里面添加如 ...
随机推荐
- Ansible Playbooks 介绍 和 使用 一
目录 Ansible Playbooks Playbooks 组成部分: YAML 介绍 YAML 语法 Ansible 基础元素 变量 facts registre 通过命令传递变量 通过roles ...
- surfer白化
surfer白化的方法: 方法一: 1.griddata需白化的文件(surfer处理成grd格式,也就是surfer绘图的基本数据格式) 注意:用surfer转换格式时,插值间距(spacing)大 ...
- jQuery.hasClass() 函数详解
jQuery.hasClass() 函数详解 hasClass()函数用于指示当前jQuery对象所匹配的元素是否含有指定的css类名. 该函数属于jQuery对象(实例). 语法 JavaScrip ...
- Docker 构建私有仓库
Docker Hub 目前Docker官方维护了一个公共仓库Docker Hub,其中已经包含了数量超过15000的镜像.大部分需求都可以通过在Docker Hub中直接下载镜像来实现. 可以在htt ...
- Python之HTTP静态服务器-面向对象版开发
利用面向对象的思想完成HTTP静态Web服务器的开发. 主要思路如下: 1.抽象出一个服务器类 1.1 编写类的对象属性 1.2 编写类的方法 注意: 在进行请求资源路径判断时,需要确认请求路径中是否 ...
- 洛谷 题解 P4613 【[COCI2017-2018#5] Olivander】
我又双叒叕被包菜辣! P4613 [COCI2017-2018#5] Olivander 首先,不知道为什么这题无法提交翻译: 所以,我先放个翻译: 哈利波特在与伏地魔的战斗中损坏了他的魔杖.他决定在 ...
- SpringBoot-多环境切换相关(六)
多环境切换 profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境: 方式一:多配置文件 我们在主配置文件编写的时候,文件名可以是 applicat ...
- React-Native项目在Android真机上调试
目录 1.确保你的设备已经成功连接.可以终端输入adb devices来查看: 2.终端运行npm start 开启本地服务,成功后运行react-native run-android来在设备上安装并 ...
- [TimLinux] openpyxl 操作Excel
from openpyxl import Workbook from openpyxl.styles import Color, PatternFill, Font from openpyxl.sty ...
- [TimLinux] JavaScript 面向对象程序设计
1. 面向对象 面向对象语言有一个标志:都有类的概念.通过类可以创建任意多个具有相同属性和方法的对象.ECMAScript中没有类的概念,因此JavaScript中的对象夜雨基于类的语言中的面向对象有 ...