Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到配置单元UDF类_Java_Hive - Fatal编程技术网

Java 未找到配置单元UDF类

Java 未找到配置单元UDF类,java,hive,Java,Hive,我在配置单元中需要一个自动递增的整数列,但无意中发现了它 我在IntelliJ中创建了一个Maven项目,添加了.java文件,并让IDE导入依赖项。然后我运行了mvn包,将生成的.jar复制到集群节点,并将.jar资源添加到配置单元中: hive> add file udf-row-sequence-1.0-SNAPSHOT.jar; Added resources: [udf-row-sequence-1.0-SNAPSHOT.jar] 很遗憾,我无法创建临时函数: hive>

我在配置单元中需要一个自动递增的整数列,但无意中发现了它

我在IntelliJ中创建了一个Maven项目,添加了
.java
文件,并让IDE导入依赖项。然后我运行了
mvn包
,将生成的
.jar
复制到集群节点,并将
.jar
资源添加到配置单元中:

hive> add file udf-row-sequence-1.0-SNAPSHOT.jar;
Added resources: [udf-row-sequence-1.0-SNAPSHOT.jar]
很遗憾,我无法创建临时函数:

hive> create temporary function row_sequence as 'com.alexwoolford.hive.udf.UDFRowSequence';
FAILED: Class com.alexwoolford.hive.udf.UDFRowSequence not found
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.FunctionTask
然而,如果我查看
.jar
文件的内容,我可以看到该类存在:

jar tf udf-row-sequence-1.0-SNAPSHOT.jar
[...]
com/alexwoolford/hive/udf/UDFRowSequence.class
[...]

你能看到我做错了什么吗?

问题是由使用
addfile
而不是
addjar
引起的,即

add jar udf-row-sequence-1.0-SNAPSHOT.jar;
即使您确实“添加JAR”,有时甚至添加JAR的顺序也很重要,但我在添加ESRI-Hive-UDF JAR时遇到了这个问题

add jar esri-geometry-api-1.2.jar;
add jar spatial-sdk-hive-1.0.3-SNAPSHOT.jar;
工作

不起作用

add jar spatial-sdk-hive-1.0.3-SNAPSHOT.jar;
add jar esri-geometry-api-1.2.jar;