文档章节

Hive问题之UDF语义错误10014

星汉
 星汉
发布于 2018/08/30 17:36
字数 534
阅读 1.4K
收藏 0

Hive问题之UDF语义错误10014

问题描述

使用Hive处理数据的时候,写了一个UDF,然后上传到服务器,添加到Hive中之后,一直报如下的错误:

FAILED: SemanticException [Error 10014]: Line 1:7 Wrong arguments '"[12.34, 18.34]"': No matching method for class cn.com.xh.udf.Distance with (string, string). Possible choices: 

解决思路

语义错误,错误码10014,我只在网上看到一个这个问题的提问,没有人回答,而且他的错误一眼就看出来了, UDF没有使用规定的方法名称,看到这里,我立刻检查我的方法名称,代码片段如下:

import org.apache.hadoop.hive.ql.exec.UDF;

public class Distance extends UDF {

	/**
	 * 两个经纬度点之间的距离计算。
	 * @param coord1 一个点的经纬度形如:[a,b]
	 * @param coord2 另一个点的经纬度,形如:[a,b]
	 * @return value 距离,如果返回-1表示参数无法计算或者缺失
	 */
	public double envalate(String coord1, String coord2) {
		// coord1:Document{{type=Point, coordinates=[116.423291, 39.98778]}}
		// coord2:[116.44308142812918, 39.98923993314435]
		if (coord1 == null && coord2 == null) {
			return -1;// -1表示无法计算,缺失值等不正常情况。
		}
		int c1 = coord1.indexOf("[") + 1;
		// System.out.println(c1);
		int c2 = coord1.indexOf("]");
       //省略后续代码
    }
}

一开始本人看了方法名称,感觉没错,可是后来,认真的对比了之后,发现方法名称写错了,正确的方法名称:evaluate()

这个坑可以吧!踩得够深!

解决方法

将方法名称修改完成,然后删除Hive中已经注册的方法,退出Hive Shell界面,重新进入Hive Shell,再进行UDF注册的步骤。即可解决!有时候不退出的话,会一直报错,不会进行jar包更新。

UDF注册参见:HIVE的UDF以及JDBC编程

总结

自古写代码字母写错了是最难检查的问题,所以写的时候一定要认真!这是一个很怎么说呢?很“高级”的错误!

© 著作权归作者所有

星汉

星汉

粉丝 50
博文 106
码字总数 302232
作品 0
朝阳
高级程序员
私信 提问
加载中

评论(0)

Spark SQL: Error in query: undefined function错误的解决方法

本文原文出处: http://blog.csdn.net/bluishglc/article/details/50748937 严禁任何形式的转载,否则将委托CSDN官方维护权益! 问题描述 如果你在Spark SQL上试图调用在HIVE注册的自定义函数...

bluishglc
2016/02/26
0
0
Hive 在多维统计分析中的应用 & 技巧总结

本文原地址:https://my.oschina.net/leejun2005/blog/121945 多维统计一般分两种,我们看看 Hive 中如何解决: 1、同属性的多维组合统计 (1)问题: 有如下数据,字段内容分别为:url, ca...

SimplePoint
2017/04/18
0
0
也说Hadoop敏感信息加密方案的尝试(下)

前面讲到了AES对称加密的两个不同方案,一是Hive表存储秘钥,一是用KMS来存储秘钥。在这两个大的分类下,又各自有两种不同的方案,每种方案的尝试都是因为踩到了坑,所以才不得不换一种姿势。...

问津已非少年
2016/12/18
375
0
hive自定义udf实现md5功能

Hive自定义UDF实现md5算法 Hive发展至今,自身已经非常成熟了,但是为了灵活性,还是提供了各种各样的插件的方式,只有你想不到的,没有做不到的,主流的开源框架都有类似的机制,包括Hadoo...

九劫散仙
2016/05/24
350
0
Hive 在多维统计分析中的应用 & 技巧总结

多维统计一般分两种,我们看看 Hive 中如何解决: 1、同属性的多维组合统计 (1)问题: 有如下数据,字段内容分别为:url, catePath0, catePath1, catePath2, unitparams https://cwiki.ap...

大数据之路
2013/04/11
5.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

LiteOS云端对接教程10-LiteOS使用NB模组基于LWM2M对接华为OC平台实战

1. 在云端添加测试设备 打开之前教程新建的LWM2M产品,进入设备管理界面新建真实设备,设备标识符要填写NB模组的IMEI号,可以使用如下命令查看: AT+CGSN=1 测试结果如下: +CGSN:86772503...

小熊派开源社区
23分钟前
48
0
多团队基于git代码管理协作流程

多团队git协同开发流程 一、版本管理的挑战 虽然有这么优秀的版本管理工具,但是我们面对版本管理的时候,依然有非常大得挑战,我们都知道大家工作在同一个仓库上,那么彼此的代码协作必然带...

kingbox2016
24分钟前
60
0
Elmedia Video Player Pro for Mac(苹果万能视频播放器) v7.9中文版

mac电脑用哪款视频播放器最合适呢?elmedia video player pro Mac版是适用于Mac OS的视频播放器。它可以播放几乎任何文件类型,无论是AVI,MP4,FLV,WMV,MKV,MP3,M4V等.Elmedia Video Pl...

云不若
29分钟前
71
0
11个默克尔树开源项目

Merkle树是一种可以有效验证部分数据存在于指定数据集并且未被篡改的高效的哈希树结构,作为一种底层技术广泛应用在各种区块链的实现当中,对于商品溯源、知识产权确认、区块链公证等区块链应...

区块链教程
56分钟前
64
0
Linux系统运维工程师入门绝招放送

运维是干嘛的?安装服务器系统?重装系统再装系统?背锅的? 我就稀里糊涂的,这样报着必死的决心,考下RHCE认证,走上了Linux运维的道路,成为了一名linux运维工程师。有些心得跟大家分享下...

linuxprobe2020
今天
64
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部