【问题标题】:Cannot Extend UDF in my Java class无法在我的 Java 类中扩展 UDF
【发布时间】:2017-01-24 23:00:14
【问题描述】:

我添加了以下依赖项

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 类A

public class A extends UDF{

    //
}

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

知道为什么会这样吗?

【问题讨论】:

    标签: java maven hive pom.xml udf


    【解决方案1】:

    请在您的 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 依赖项 jar 文件夹中可用。

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

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

    在项目中导入依赖项后,它会自动查找类。

    【讨论】:

      【解决方案2】:
      import org.apache.hadoop.hive.ql.exec.UDF;
      

      你需要那条线。如果这不可用,则说明您的依赖项有误,或者只是尚未下载源代码。

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

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

      【讨论】:

        猜你喜欢
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-22
        • 1970-01-01
        相关资源
        最近更新 更多