Hive异常:UDFArgumentTypeException No argument is expected

背景:

今日在某集市执行一hivesql,sql没有问题,在数据仓库里执行没有问题。

但是在某集市执行后,一直提示UDFArgumentTypeException No argument is expected,很蛋疼。

其中,这个sql涉及到到row_number()、regexp_replace等函数。

分析:

经sql分段排查,是由于使用到row_number()函数才报错。

由此可判断,如果某个函数udf出问题的话,会报这个异常:UDFArgumentTypeException No argument is expected

解决办法:

重新加载可用的udf包。

将udf包上传到堡垒机(比如路径为: add jar /home/dd_sdm/udf/RowNumberUDF1.jar)

hive > add jar /home/dd_sdm/udf/RowNumberUDF1.jar;

hive > create temporary function row_number as ‘com.example.hive.udf.RowNumberUDF‘;

hive> your hivesql

以上经历,供参考。

时间: 2024-10-16 19:53:29

Hive异常:UDFArgumentTypeException No argument is expected的相关文章

An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply: public com.rongrong.springboot.de

报错信息: An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply: public com.rongrong.springboot.demo.domain.Student com.rongrong.springboot.de

Hive异常 -- Cannot create directory /tmp/hive. Name node is in safe mode.

环境信息 虚拟机:Centos 7 . Hive版本:1.2.1 异常信息 Cannot create directory /tmp/hive. Name node is in safe mode. 异常处理 正常根据提示,使用 hdfs dfsadmin -safemode leave 即可 但是我遇到了特殊情况,我使用命令hdfs dfsadmin -safemode leave,不生效,幸亏看到一篇文章说可能虚拟机磁盘满了,df -h 看了一眼,果然满了. 记得以前也遇到过类似的事.命令失

hive异常:创建MySQL时Specified key was too long; max key length is 1000 bytes

2015-11-13 14:44:44,681 ERROR [main]: DataNucleus.Datastore (Log4JLogger.java:error(115)) - An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 1000 bytescom.mysql.jdbc.exceptions.jdbc4.MySQLSynta

Hive UDAF开发详解

说明 这篇文章是来自Hadoop Hive UDAF Tutorial - Extending Hive with Aggregation Functions:的不严格翻译,因为翻译的文章示例写得比较通俗易懂,此外,我把自己对于Hive的UDAF理解穿插到文章里面. udfa是hive中用户自定义的聚集函数,hive内置UDAF函数包括有sum()与count(),UDAF实现有简单与通用两种方式,简单UDAF因为使用Java反射导致性能损失,而且有些特性不能使用,已经被弃用了:在这篇博文中我们

Hive自定义函数(UDF、UDAF)

当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数. UDF 用户自定义函数(user defined function)–针对单条记录. 创建函数流程 1.自定义一个Java类 2.继承UDF类 3.重写evaluate方法 4.打成jar包 6.在hive执行add jar方法 7.在hive执行创建模板函数 8.hql中使用 Demo01: 自定义一个Java类 package UDFDemo; import org.apache.hadoop.hive.

Hive通用型自定义聚合函数(UDAF)

在使用hive进行数据处理时,经常会用到group by语法,但对分组的操作,hive没有mysql支持得好: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) hive只有一个collect_set内置函数,返回去重后的元素数组,但我们可以通过编写UDAF,来实现想要的功能. 编写通用型UDAF需要两个类:解析器和计算器.解析器负责UDAF的参数检查,操作符的重载以及对于给定的一组参数类型来查找

Hive学习之自定义聚合函数

Hive支持用户自定义聚合函数(UDAF),这种类型的函数提供了更加强大的数据处理功能.Hive支持两种类型的UDAF:简单型和通用型.正如名称所暗示的,简单型UDAF的实现非常简单,但由于使用了反射的原因会出现性能的损耗,并且不支持长度可变的参数列表等特征.而通用型UDAF虽然支持长度可变的参数等特征,但不像简单型那么容易编写. 这篇文章将学习编写UDAF的规则,比如需要实现哪些接口,继承哪些类,定义哪些方法等, 实现通用型UDAF需要编写两个类:解析器和计算器.解析器负责UDAF的参数检查,

BG.Hive - part3

1. Hive数据导入 - Load Load,加载,不会进行任何数据转换和处理的操作,只会进行数据Move操作,将元数据移动到HDFS指定目录 a> hdfs dfs -put 'hdfs的hive目录' b> LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION(partcol1=val1,partcol2=val2...)] filepath: 要加载的数据文件路径,可以是相对路径,

【hadoop】15、hive安装

Hive的介绍和安装 Hive是什么 Hive是一个数据仓库,使用sql脚本就可以了 Hive包含几个引擎 解释器,编译器,优化器等 接触hive 首先我们进入到相应的官方文档中,接触hive的命令使用https://cwiki.apache.org/confluence/display/Hive/LanguageManual 然后我们打开命令行的模式 usage: hive -d,--define <key=value> Variable substitution to apply to h