页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

[DECIMAL_PRECISION_EXCEEDS_MAX_PRECISION] Decimal precision 8 exceeds max precision 7.日志显示出Decimal的最大精度是7,然后出现了精度8位数。实际上Spark的Decimal类型最大位数是38位,引擎也未提供接口修改位数限制。注意到客户的数值是通过sql计算的,并没有指定计算结果的类型,有可能spark自行推导了结果类型,超出了推导类型的限制。解决办法:

解决办法

在SQL中显示地指定结果的类型,比如SELECT CAST(123.45 AS DECIMAL(38,2)),显示地指定为 DECIMAL(38,2)类型。