无法在我的Java类中扩展UDF

时间:2017-01-24 23:00:14

标签: java maven hive pom.xml udf

我添加了以下依赖项

Group id: org.apache.hive
Artifact id:hive-common
version:2.1.1

Group id: org.apache.hive
Artifact id:hive-exec
version:2.1.1

在我的pom.xml依赖文件中。

我保存了它并没有给我任何错误 我创建了一个Java classA

public class A extends UDF{

    //
}

但我的Eclipse不识别UDF并且不导入所需的包,而是要求我创建一个UDF类。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

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

你需要那条线。如果这不可用,则您具有错误的依赖关系,或者尚未下载源。

注意:hive-exec是正确的依赖项(包括hive-commonhadoop-common本身),因此Maven可能尚未下载您的来源。

运行Maven clean,然后运行compile任务以获取它们。

答案 1 :(得分:0)

请在您的pom.xml中添加以下依赖项。

  <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-exec</artifactId>
      <version>${hive.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
  </dependencies>

之后确保它在maven dependecies jar文件夹中可用。

从下面的包和类导入UDF类:

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

在项目中导入您的dependecies后,它将自动查找类。