Hive:Hive UDF 中 CREATE FUNCTION 和 CREATE TEMPORARY FUNCTION 的区别
Hive: Difference between CREATE FUNCTION and CREATE TEMPORARY FUNCTION in Hive UDF
我是配置单元的新手,我正在从事一个项目,我需要为数据整理创建一些 UDF。在我的研究过程中,我遇到了两种从添加的 jars 创建 UDF 的语法
CREATE FUNCTION country AS 'com.hiveudf.employeereview.Country';
CREATE TEMPORARY FUNCTION country AS 'com.hiveudf.employeereview.Country';
以上两种方式,我没发现有什么区别。谁能给我解释一下或指导我正确 material?
create函数和create tmp函数的主要区别在于:
在 Hive 0.13 或更高版本中,可以将函数注册到 Metastore,因此可以在查询中引用它们,而不必在每个会话中创建临时函数。
如果我们使用 CREATE TEMPORARY FUNCTION ,我们将不得不在每次开始新会话时重新创建该函数。
CREATE TEMPORARY FUNCTION
创建一个新函数,只要会话持续,您就可以在 Hive 查询中使用它。这更快,因为我们不需要将函数注册到 megastore。
而 CREATE FUNCTION
的行为更持久。这些函数可以注册到 Metastore,因此可以在查询中引用它们,而不必在每个会话中创建一个临时函数。
When to use
:
中间函数可以使用 TEMPORARY
创建,其目的只是计算,以后可以被任何永久函数使用。
Reference
我是配置单元的新手,我正在从事一个项目,我需要为数据整理创建一些 UDF。在我的研究过程中,我遇到了两种从添加的 jars 创建 UDF 的语法
CREATE FUNCTION country AS 'com.hiveudf.employeereview.Country';
CREATE TEMPORARY FUNCTION country AS 'com.hiveudf.employeereview.Country';
以上两种方式,我没发现有什么区别。谁能给我解释一下或指导我正确 material?
create函数和create tmp函数的主要区别在于: 在 Hive 0.13 或更高版本中,可以将函数注册到 Metastore,因此可以在查询中引用它们,而不必在每个会话中创建临时函数。
如果我们使用 CREATE TEMPORARY FUNCTION ,我们将不得不在每次开始新会话时重新创建该函数。
CREATE TEMPORARY FUNCTION
创建一个新函数,只要会话持续,您就可以在 Hive 查询中使用它。这更快,因为我们不需要将函数注册到 megastore。
而 CREATE FUNCTION
的行为更持久。这些函数可以注册到 Metastore,因此可以在查询中引用它们,而不必在每个会话中创建一个临时函数。
When to use
:
中间函数可以使用 TEMPORARY
创建,其目的只是计算,以后可以被任何永久函数使用。
Reference