CDH6中Impala3报错UDF ERROR: String to Decimal parse failed

Impala数据类型转换cast(可解决小数后长串数字问题) 数据类型转换是一个常见的需求,因为有一些函数、或者运算时,对数据类型有严格要求,所以在做运算前,都需要将数据先进行数据类型的转换,此处就需要用到cast,转为string、timestamp、decimal等等。虽然批量计算时,有一些数据计算是不会有长串小数的问题,但是只要有,就影响到了用户体验感(我是产品),所以后来我改用cast,直接改成。也是刚巧遇到的现象,愚笨的我一开始也蒙在鼓里,希望跟我一样遇到这种现象的读者,通过我上面的解释,能解决你的疑惑和问题哈。,这就跟我们的预期违背了; 阅读详情

执行impala-shell或者在HUE中执行查询的时候会在对decimal类型做四则运算或聚合操作时出现此错误信息,这个错误只出现在CDH6以上的版本/impala3以上,我们也是在集群升级CDH6之后才遇到这个错误。

UDF ERROR:String to Decimal cast overflowed

UDF ERROR: String to Decimal parse failed

出现这个错误的原因是因为CDH6中impala升级到impala3之后decimal格式做了升级,在官方文档中可以看到区别:

https://docs.cloudera.com/documentation/enterprise/6/6.0/topics/impala_decimal.html

官方也给出了解决方案: SET DECIMAL_V2=FALSE;  这样子就不会报错了,但是这个配置是session级别的,我们得想办法配置成为全局的,以保证所有impala-shell调用的sql脚本无需修改就可以正常运行。

这里我参考官方文档的配置在impala的配置文件~/.impalarc 里加上此配置即可:

https://docs.cloudera.com/documentation/enterprise/6/6.0/topics/impala_shell_options.html

[impala.query_options]
DECIMAL_V2=FALSE

加上这个配置之后,该用户执行impala-shell调用脚本时就不会报UDF ERROR:String to Decimal cast overflowed 这个错误了。

如果有多个用户执行脚本需要在每个用户主目录下新建或修改.impalarc文件加上这个配置。

注意这个配置只解决impala-shell命令执行的sql,并不能解决HUE里的这个问题,原因也是因为此配置是session级别的,且impalarc文件是impala-shell在执行的时候会去检查的配置文件,跟HUE没什么关系。

可以看到impala-shell.py里面先读默认配置文件impalarc,默认配置文件impalarc在impala_shell_config_defaults.py中获取.

在配置文件impala_shell_config_defaults.py中可以看到config_file是'~/.impalarc'。

因此如果在HUE里执行SQL查询的时候如果遇到上面的错误,还是需要在HUE的窗口里先执行一下SET DECIMAL_V2=FALSE;

然后就可以欢乐的玩耍了,只要HUE窗口没有关闭就可以正常使用。


扩展:

在该配置文件.impalarc中:

[impala] 下面的配置为系统配置 即 impala-shell -h 之后的那些参数配置。

[impala.query_options]下面的配置为session配置即set xxx=yyy;这样的配置,会给每个会话生效。

 

C和C++的强制类型转换 C++ 四种强制类型转换 一般来说,我们需要类型转换的场景可以分为如下几种: 整型和浮点型以及不同长度的数据相互转换 一般规则是:占用内存低的向占用内存高的自动转换,而反向则会有转换截断的问题 整型和指针相互转换 当我们试图根据某个成员变量的偏移位计算其在该对象内存空间位置时,就会需要将指针转换为整型进行计算。当计算出该变量的位置后(整型),就需要将其转换为指针类型。 整型和枚举类型相互转换。 这种转换往往发生在数学计算的场景下。因为枚举一般只是用于表意,而实际参与运算的还是整型数据。 指针 阅读详情

相关推荐

flink sink 涉及 字符串 转 Decimal类型导致报错 For input string: ‘864718064999999‘. Overflow.

因为Sink的表DDL中 Decimal字段是 Decimal(12,4) 但是从kafka接受的字符串想cast成decimal(12,4)的类型就会报错.

yy的博客 585

impala运行sql文件无法正确转换为decimal(没有四舍五入)

一次迁移发现,生产和测试的结果不太一样,生产用的impala,测试用hive,同一个值,在转换为decimal(8,2)时,impala没有四舍五入,hive有,查看日志发现impala出现了警告: WARNINGS: UDF WARNING: String to Decimal parse failed UDF WARNING: String to Decimal parse failed 查了很久才发现是因为impala配置文件里配置了SET DECIMAL_V2=FALSE;使用hue测试了一下 S

博客 3275

Flink Sink 中字符串转 Decimal 类型导致的报错 “For input string: ‘ ‘. Overflow“ 问题解析与解决方案

在某些情况下,我们可能需要将字符串类型的数据转换为 Decimal 类型,以便正确地将其写入目标系统。当我们尝试将字符串转换为 Decimal 类型时,Flink 使用的是 Java 的 BigDecimal 类进行转换。然而,当字符串无法准确地表示为有效的数字时,就会引发 “For input string: ’ '. Overflow” 异常。Flink Sink 中字符串转 Decimal 类型导致的报错 “For input string: ’ '. Overflow” 问题解析与解决方案。

SVIPCODE的博客 624

CDP impala UDF ERROR String to Decimal parse failed

最近公司集群迁移 从cdh到cdp 在cdp上执行脚本的时候报错 搞半天后发现,是impala3.0以上的版本默认使用decimal_v2 我们只需要 set decimal_v2=false 就可以和老版本一样了

ergeg1的博客 1120

01 高等数学 上下册知识点总结

极限与连续 8个等价无穷小 8个常用泰勒公式 高数复习——多元函数微分学 一、概念 一元函数: 可微<=>可导 △y=A△x+o(△x)dy=AdxA=f′(x)\triangle y=A\triangle x+o(\triangle x)\\dy=Adx\\A=f'(x)△y=A△x+o(△x)dy=AdxA=f′(x) 多元函数: 可微=>可导(可导指两个偏导数存在,反之不成立) 可微=>连续(反之不成立) △z=A△x+B△y+o(p)dz=Adx+BdyA=δzδxdx

qq_44292038的博客 1万+

FPGA进位链(Carry Chain)实战:从Xilinx CARRY8原语到性能优化全解析

本文深入解析了FPGA进位链(Carry Chain)的原理与应用,重点剖析了Xilinx CARRY8原语的端口功能与内部机制。通过实测数据揭示了进位链的真实延迟特性与温度影响,并详细阐述了如何利用DI和S信号进行动态路径优化、实现减法运算与条件进位选择,从而有效提升设计性能。最后,文章探讨了系统级的流水线拆分、布局约束等实战优化策略与常见陷阱。

weixin_29313817的博客 449

[impala]impala报错:errorCode=None, errorMessage=‘UDF ERROR: String to Decimal parse failed\n‘, sqlStat

摘要:CDH6中Impala3升级后decimal格式变更导致报错,官方建议通过"SET DECIMAL_V2=FALSE"解决。但该配置仅为session级别,需设法配置为全局设置,以确保所有impala-shell调用的SQL脚本无需修改即可正常运行。(98字)

qq_45755385的博客 164

基于NXP i.MX RT1180的无传感器FOC电机驱动实战指南

磁场定向控制(FOC)是一种先进的电机控制技术,它通过精密的数学变换,将三相交流电机的控制解耦为独立的转矩和磁场分量,从而实现高效、平稳、低噪音的驱动。其核心原理在于利用Park/Clark变换,在旋转坐标系下对电流进行线性控制。这项技术的价值在于显著提升了永磁同步电机(PMSM)的效率与动态性能,广泛应用于机器人、无人机和工业自动化等高精度场景。本文聚焦于利用NXP i.MX RT1180跨界处理器及其MCUXpresso SDK,快速实现一套完整的无传感器FOC解决方案。通过解析硬件平台选型、软件架构,

weixin_33925615的博客 302

CSS Overflow 属性详解

根据CSS的盒模型概念,页面中的每个元素,都是一个矩形的盒子。这些盒子的大小、位置和行为都可以用CSS来控制。对于行为,我的意思是当盒子内外的内容改变的时候,它如何处理。比如,如果你没有设置一个盒子的高度,该盒子的高度将会根据它容纳内容的需要而增长。但是当你给一个盒子指定了一个高度或宽度而里面的内容超出的时候会发生什么?这就是该添加CSS的overflow属性的时候了,它允许你设定该种情况下如何处

895

Test软件:Keysight二次开发_(3).安装与配置开发环境

在开始进行Keysight软件的二次开发之前,首先需要确保您的开发环境已经正确安装和配置。本节将详细介绍如何安装和配置必要的开发工具和依赖项,以便您能够顺利进行开发工作。

2401_87715305的博客 1413

Open3D 读取、保存、显示点云【2025最新版】

paint_uniform_color给所有的点上一个统一的颜色。博客长期更新,本文最近更新时间为:2025年1月1日。

点云侠的博客 37万+

Impala解决cast导致UDF ERROR: Decimal expression overflowed

在使用cast as decimal时,有时会发生报错,报错内容大致为:UDF ERROR: Decimal expression overflowed;有兴趣了解原因的小伙伴们,可以把你的 decimal(m,n) 改成 float ,你就会发现,该字段有的结果是NaN。,如果有某条数据中除数是0,那么就会导致上述报错,而使我们的impala sql 不能正常运行。也许他没发现问题所在吧,我们在这里就说明一下发生以上报错,具体解决方式是什么。那么解决这个问题的方式就有啦,那就是做除法运算之前,做一下判断,

王世洪的博客 3633

【专栏导引贴】100+智能优化算法:从背景原理到代码实战(持续更新)

本专栏系统整理100+种现代优化算法,涵盖粒子群优化(PSO)、遗传算法(GA)、鲸鱼优化(WOA)等经典方法,以及白鲸优化(BWO)、非洲秃鹫优化(AVOA)等新兴算法。每篇详解包含生物启发原理、数学模型、代码实现及工程应用,采用统一编程风格,提供可直接运行的实例代码。专栏持续更新,旨在为研究者提供系统化的智能优化算法参考资料,实现从理论到实践的完整知识链。目前已收录23种算法,包括蚁群系统(ACS)、蝙蝠算法(BA)、天牛须搜索(BAS)等自然启发式优化方法。

qq_42212808的博客 3643

string cast to deciaml failed 一种简单的解决方式你值得一试

string cast to deciaml failed 一种简单的解决方式你值得一试

weixin_50659451的博客 865

如何从 VMware 官网下载最新版本的 VMware Workstation

如何从 VMware 官网下载 VMware Workstation

XiaoqiangClub的博客 5877

GEE案例:计算区域生态总体脆弱性分析

计算区域生态总体脆弱性分析需要考虑多个指标和因素。下面是一个基本的方法:选择指标:选择一组能够反映区域生态系统脆弱性的指标。这些指标可以包括生物多样性指数、森林覆盖率、湿地保护率、土地退化程度等。为每个指标分配权重:为了使得各指标在计算中的重要性相对均衡,可以为每个指标分配一个权重。权重可以根据各指标的重要性和可利用的数据进行确定。数据收集和处理:收集每个指标的数据,并对其进行处理,确保数据的准确性和一致性。如果有需要,可以对数据进行归一化处理。计算指标值:根据收集的数据和权重,计算每个指标的值。

此星光明博客 464

SET DECIMAL_V2=FALSE及UDF ERROR: Cannot divide decimal by zero及Incompatible return types DECIMAL问题排查

SET DECIMAL_V2=FALSE; UDF ERROR: Cannot divide decimal by zero; Incompatible return types 'DECIMAL(38,15)' and 'DECIMAL(38,4)';

lonelymanontheway的博客 3195

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

decimal转为string sql_c# – 无法将参数值从String转换为Decimal

我使用以下代码将csv导入我的sql server表SqlCommand nonqueryCommand = myConnection.CreateCommand();nonqueryCommand.CommandText ="INSERT INTO MYTABLE VALUES(@num1, @num2,@num3,@num4)";nonqueryCommand.Parameters.Add("...

weixin_35160938的博客 1074

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

impala查询报错:TFetchResultsResp(status=TStatus(errorCode=None, errorMessage=‘UDF ERROR: Decimal express

在使用impala查询的时候,在使用cast函数将数据转为decimal类型时,会报错: Bad status for request TFetchResultsReq(fetchType=0, operationHandle=TOperationHandle(hasResultSet=True, modifiedRowCount=None, operationType=0, operationId=THandleIdentifier(secret='\xc8\xc1j\xfe\xd6.B\xa2\x9e\

xiaoxiao______的博客 2137

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【错误】”将参数值从 String 转换到 Decimal 失败“ && “仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时”

今天在写一个SqlDataAdapter向数据库更新数据的Demo时,出现了这个错误,其实很好理解,还是一个细心的问题:在往数据库里存储数据时,要注意字段的类型!!而我的错误就是 一个字段是int 型,存储给的数据却是string类型,所以会报这样的错。。。(细心哟)将参数值从 String 转换到 Decimal 失败。 //向插入命令添加参数 insertCmd.P

lemonGuo的大脑皮层、小脑、海马体、杏仁核..... 5080
上一篇: impala-shell调用SQL脚本执行报编码错误
下一篇: CDH6中Impala报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值