是这样的,我在dataGrap(连接了hive)写了脚本,脚本是这样的

insert overwrite table dwd_fact_order_detail partition (dt='$do_date')
selectt1.id,t1.order_id,t1.user_id,t1.sku_id,t1.sku_name,t1.order_price,t1.sku_num,t1.create_time,t1.province_id,t1.source_type,t1.source_id,
t1.original_amount_d,
`if`(t1.rk=1,t1.final_total_amount-(t1.final_amount_d_sum-final_amount_d),t1.final_amount_d) as final_amount_d,
`if`(t1.rk=1,t1.feight_fee-(t1.feight_fee_d_sum-t1.feight_fee_d),t1.feight_fee_d) as feight_fee_d ,
`if`(t1.rk=1,t1.benefit_reduce_amount-(t1.benefit_reduce_amount_d_sum-t1.benefit_reduce_amount_d),t1.benefit_reduce_amount_d) as benefit_reduce_amount_d
from(selectod.id,od.order_id,od.user_id,od.sku_id,od.sku_name,od.order_price,od.sku_num,od.create_time,oi.province_id,od.source_type,od.source_id,oi.final_total_amount,oi.feight_fee,oi.benefit_reduce_amount,ROUND(od.sku_num*od.order_price,2) as original_amount_d,-- 原始价格分摊ROUND((od.sku_num*od.order_price/oi.original_total_amount)*oi.final_total_amount,2) as final_amount_d,--购买价格分摊ROUND((od.sku_num*od.order_price/oi.original_total_amount)*oi.feight_fee,2) as feight_fee_d,-- 运费分担ROUND((od.sku_num*od.order_price/oi.original_total_amount)*oi.benefit_reduce_amount,2) as benefit_reduce_amount_d, -- 优惠分担sum(ROUND((od.sku_num*od.order_price/oi.original_total_amount)*oi.final_total_amount,2))  over(partition by od.order_id) as final_amount_d_sum,--购买价格分摊总和sum(ROUND((od.sku_num*od.order_price/oi.original_total_amount)*oi.feight_fee,2)) over(partition by od.order_id) as feight_fee_d_sum,--运费分摊总和sum(ROUND((od.sku_num*od.order_price/oi.original_total_amount)*oi.benefit_reduce_amount,2)) over(partition by od.order_id) as benefit_reduce_amount_d_sum,--运费分摊总和rank() over(partition by od.order_id order by oi.original_total_amount desc) as rk
from(select * from ods_order_detail where dt='$do_date') odjoin(select * from ods_order_info where dt='$do_date') oion od.order_id = oi.id)t1;

然后在dataGrap中跑是正常的。把这段SQL复制到shell脚本中,就一直报FAILED: UDFArgumentException The function DECIMAL takes only primitive types。

最终找到原因:dataGrap中能识别 飘号 `` ,但是shell中`if`识别有错。所以在shell中去掉 if的飘号就可以了

排坑-FAILED: UDFArgumentException The function DECIMAL takes only primitive types相关推荐

  1. node升级命令_Laravel Mix 4升级说明与“排坑儿”指南

    本篇是我们系列课程<Laravel5.7优雅实战入门:第二版>和<Laravel 5.7&Vue 2.x深度整合实战:第二版>的扩展阅读. 想要更好的阅读体验,请观看原 ...

  2. 问题-fuxi job failed ,cased by:Invalid decimal format.

    中台插数据问题 问题一 问题二 问题三 问题一 在跑SQL脚本从贴源层网共享层表插入数据时报如下错误 错误:FAILED: ODPS-0010000:System internal error -fu ...

  3. Dispatcher has no subscribers for channel排坑指南

    Dispatcher has no subscribers for channel排坑指南 通过Spring Cloud Stream解耦具体消息中间件,屏蔽掉不同中间件之间的差异,简化了消息中间件使 ...

  4. 排坑日记1:RuntimeError: one of the variables needed for gradient computation has been modified

    问题描述 在使用Pytorch复现DeepFill V1时,报如下错: RuntimeError: one of the variables needed for gradient computati ...

  5. Linux下的floodlight安装指南(排坑版)

    目录 一.先决条件(仔细核对,缺一不可!) Linux:你最喜欢的 Linux 风格 Java 开发工具包:JDK 8 for Floodlight master 及更高版本.JDK 7 for Fl ...

  6. 最新使用uniapp本地打包APP安卓,已排坑

    uniapp打包IOS!!! 1. 生成本地打包资源 2. 下载Android Studio和App离线SDK 导航路径:https://nativesupport.dcloud.net.cn/App ...

  7. 【在虚拟环境下完美解决】1698: error: (-215:Assertion failed) empty() in function cv::CascadeClassifier

    问题描述 官方文档做的Demo发现遇到了错误提示如下: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifi ...

  8. Go的闭包看你犯错,Rust却默默帮你排坑

    作者 | 马超 责编 | 晋兆雨 出品 | CSDN博客 初识闭包 闭包(Closure)在某些编程语言中也被称为 Lambda 表达式,是能够读取其他函数内部变量的函数.一般只有函数内部的子函数才能 ...

  9. rtl8811au黑苹果10.15_荣耀MagicBook I5黑苹果折腾记(超详细教程与排坑)

    本文主要介绍如何安装Win10 + Mac OS双系统,以及安装过程中可能遇到的一些坑. 本人的机型是:MagicBook I5-8250U MX150独显 8GB+256GB (VLT-W50),更 ...

最新文章

  1. 环境搭建 - 奥比中光3D摄像头(Astra Mini)
  2. scanf函数详解与缓冲区
  3. 【CSON原创】基于HTML5的超级玛丽游戏demo
  4. ViewFlipper的功能和用法
  5. 掩膜区域内像素值_基于颜色空间采样的抠图算法
  6. Python-快速排序算法
  7. Django(part52)--项目部署
  8. python比特币挖矿_比特币如何挖矿(挖矿原理)-工作量证明
  9. php 去掉后导字符,PHP去除字符串最后一个字符的三种方法实例
  10. 卷积神经网络及其特征图可视化
  11. python获取cpu信息_使用python获取CPU和内存信息的思路与实现(linux系统)
  12. ios healthkit_如何使用Swift从iOS的HealthKit中读写Mindful Minutes
  13. 35个优秀的电子商务网站设计案例
  14. windowsServer安装sqlServer2008
  15. Sort exceeded memory limit of 104857600 bytes 解决方案
  16. springBoot简单使用SpringData的jdbc和简单使用durid
  17. 微信小程序开发初学:图片组件 - image
  18. 有限自动机和右线性文法笔记
  19. j - 分组(动态规划)
  20. 《蹭课神器》项目总结

热门文章

  1. class.getClassLoader().getResource(xxx)是什么意思啊?最后这个xxx和这个类有什么关系?...
  2. Catalan数计算
  3. Cauchy-Buniakowsky-Schwarz 积分形式证明
  4. Qt开发MQTT(一) 之Qt官方Qt MQTT
  5. OwnCloud搭建私有云存储网盘
  6. 基于fastadmin框架,上传视频,自动截取视频封面图
  7. 手机是怎么通过4g流量连接到互联网的,继续解决上篇文章--4G模块接入联网的疑惑
  8. FloodLight开发者文档四(译文)
  9. 地产公司新建商业中心调研
  10. C语言计算1/1+1/2+1/3+…+1/n