我需要 Hive 中的自动递增整数列,并偶然发现 UDFRowSequence .
我在 IntelliJ 中创建了一个 Maven 项目,添加了 .java
文件,并让 IDE 导入依赖项。然后,我运行 mvn package
,将生成的 .jar
复制到集群节点,并将 .jar
资源添加到 Hive 中:
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
[...]
你能看出我做错了什么吗?
最佳答案
该问题是由使用 add file
而不是 add jar
引起的,即
add jar udf-row-sequence-1.0-SNAPSHOT.jar;
关于java - 未找到 Hive UDF 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31843354/