如何使用Transform将Unix Bash脚本或awk脚本用作Hive UDF?

时间:2015-02-02 10:00:15

标签: bash shell hadoop hive

我正在尝试使用" TRANSFORM",PFB运行一个Hive查询示例查询

例如: -

SELECT TRANSFORM (*)
  USING 'worker.py' as (sum)
  FROM mysource_filetable

在上面的示例中,Python用于UDF以计算所有列的总和。

我不想使用Python或Java代码作为UDF,我们可以使用Bash脚本来获取所有列的总和。

1 个答案:

答案 0 :(得分:0)

当然,Hive流式UDF功能可以与任何脚本类型一起使用。只需指定可执行文件和脚本(在添加资源之后)。因此,对于此示例,您的代码看起来像这样:

SELECT TRANSFORM (*)
  USING 'sh worker.sh' as (sum)
  FROM mysource_filetable

确保您遵循流式UDF的其他准则,例如:你是从stdin读取并通过stdout传递值。您可以在此处找到更多信息:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Transform