我们可以从 Hive 中的自定义 UDF 运行查询吗?

Posted

技术标签:

【中文标题】我们可以从 Hive 中的自定义 UDF 运行查询吗?【英文标题】:Can we run queries from the Custom UDF in Hive? 【发布时间】:2012-01-06 13:16:12 【问题描述】:

伙计们,我是 Hive 的新手,对此有一些疑问。

通常我们在 Hive 中为特定数量的列编写自定义 UDF。 (考虑 UDF 在 Java 中)。意味着它对该特定列执行一些操作。

我在想我们是否可以编写这样的 UDF,通过它我们可以将特定列作为某个查询的输入,我们是否可以从 UDF 返回该查询,该查询将通过将该列作为输入在 Hive CLI 上执行?

我们可以这样做吗?如果是,请建议我。 感谢和抱歉我的英语不好。

【问题讨论】:

【参考方案1】:

这不可能开箱即用,因为在 Hive 查询运行时,已经建立了一个将要执行的计划。您的建议是在该计划运行时动态更改该计划,这不仅因为计划已经构建,而且因为 Hadoop MapReduce 作业已经在运行,这很困难。

您可以做的是让您的初始 Hive 查询将新的 Hive 查询输出到一个文件,然后让某种 bash/perl/python 脚本通过该脚本并制定新的 Hive 查询并将它们传递给 CLI。

【讨论】:

以上是关于我们可以从 Hive 中的自定义 UDF 运行查询吗?的主要内容,如果未能解决你的问题,请参考以下文章

Python中的自定义数组值Hive UDF?

如何在 Hive 中重新加载更新的自定义 UDF 函数?

Hive的自定义函数

Hive从入门到精通8:Hive自定义函数(UDF)

如何写hive的udf函数

hive udf 函数:MD5