0

我是 hive 的新手,我正在做一个项目,我需要为数据整理创建一些 UDF。在我的研究中,我遇到了两种从添加的 jar 中创建 UDF 的语法

CREATE FUNCTION country AS 'com.hiveudf.employeereview.Country';

CREATE TEMPORARY FUNCTION country AS 'com.hiveudf.employeereview.Country';

我无法在上述两种方式中找到任何区别。有人可以向我解释或指导我使用正确的材料吗?

4

2 回答 2

0

CREATE TEMPORARY FUNCTION创建一个新函数,只要会话持续,您就可以在 Hive 查询中使用它。这更快,因为我们不需要将函数注册到 megastore。而CREATE FUNCTION行为更持久。这些函数可以注册到元存储中,因此可以在查询中引用它们,而不必在每个会话中创建临时函数。

When to useTEMPORARY:可以使用旨在仅计算 的中间函数来创建中间函数,并且以后可以由任何永久函数使用。参考

于 2021-04-19T10:00:46.467 回答
0

create function 和 create tmp function 的主要区别在于:在 Hive 0.13 或更高版本中,函数可以注册到 Metastore,因此可以在查询中引用它们,而不必在每个会话中创建临时函数。

如果我们使用 CREATE TEMPORARY FUNCTION ,我们将不得不在每次启动新会话时重新创建该函数。

参考:https ://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Create/Drop/ReloadFunction

于 2021-04-19T08:51:35.013 回答