Hive自定义UDF函数如何在项目中使用

对于UDF自定义函数编写规则、打成jar包、上传服务器、add jar...、create temporary function ...等这些步骤这里不作介绍,网上一大堆资料。

这里说说我项目中遇到的问题。项目中我需要将mysql、sqlserver的SQL语句转换为hive能识别的hql。很简单,在项目中写一些替换代码,将SQL中的内置函数replace成hive的相关内置函数就行,例如将isnull()替换成nvl()等。前提得hive中有类似函数。

问题来了,SQL中的有些内置函数如IsNumeric()在hive中就没找到现成可替换的(我的为hive-2.3.2),哪位正在看本文的大神们若知道有替换的欢迎留言哈。。。

那怎么办?就目前以我的知识储备量只能通过hive自定义函数来解决了。说干就干,代码撸起来,终于憋了半天写出来了(没办法,肚子就这么货)。打包、上传、hiveCli 本地客户端 add jar、create temporary function...一顿操作猛如虎,测试也木问题。泡杯茶,点根烟,项目跑起来......

好吧,果然没那么顺利,报错如下:org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: SemanticException [Error 10011]: Invalid function isnumeric 

啥?函数无效,刚才在hivecli上跑的还很嗨呢,都一个爹生的在项目中怎么就无效了呢。此时心中有一万只草泥马在可劲了奔腾。没办法只能百度了(面向百度编程的程序猿就是我这种)。卧槽,网上竟然找不到类似的问题,难道我是全网第一个遇到此类问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值