使用Hive表的Hive UDF

54l*_*l3d 9 java hive user-defined-functions udf

我已经在java中开发了一个正常工作的hive udf,我的函数返回输入和hive表中的列之间的最佳匹配,所以它有这个简化的伪代码:

class myudf  extends udf{

    evaluate(Text input){

        getNewHiveConnection(); //i want to replace this by getCurrentHiveUserConnetion();
        executeHiveQuery(input);
        return something;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果这个函数是由Hive调用的,为什么我需要在我的代码中连接到hive?我可以使用当前连接使用我的功能的用户连接吗?

小智 -3

是的 - 您可以使 UDF 永久化。例如:

\n\n
CREATE FUNCTION MatchFinder as \'com.mycompany.packagex.myudf\' using jar\xc2\xa0 \'hdfs:///an_HDFS_directory/my_jar_name.jar\';\n
Run Code Online (Sandbox Code Playgroud)\n\n

这将使您的函数永久存在,任何人都可以调用它。在本例中,jar 文件存储在 HDFS 上以便于访问,但还有其他选项。

\n\n

有关更多详细信息,请参阅Hive 维基

\n