我们如何在不引用表的情况下测试 HIVE 功能



我想了解UDF WeekOfYear以及它是如何开始第一周的。我不得不人为地撞到桌子上跑查询 。我不想打桌子并计算值。其次,我可以查看UDF源代码吗?

SELECT weekofyear
('12-31-2013')
from a;

自 Hive 0.13.0 以来,不需要表来测试 UDF。

请参阅此 Jira:没有 FROM 的 HIVE-178 SELECT 应假定一个没有列的单行表

测试:

hive> SELECT weekofyear('2013-12-31');

结果:

1

源代码(主分支)在这里:UDFWeekOfYear.java

如果你是Java开发人员,你可以编写Junit测试用例并测试UDF。

可以在 grepcode 中搜索所有 Hive 内置函数的源代码。

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hive/hive-exec/1.0.0/org/apache/hadoop/hive/ql/udf/UDFWeekOfYear.java

我不认为在 Hive 中可以在不打表的情况下执行 UDF。甚至Hive开发人员也在UDF测试中脱颖而出。

若要使查询运行速度更快,可以:

  1. 创建仅包含一行的表并在此表上运行 UDF 查询
  2. 在本地模式下运行 Hive。

Hive 源代码位于此处。 UDFWeekOfYear来源在这里。

您应该能够使用任何至少包含一行的表来测试函数。下面是使用一些执行工作并输出字符串结果的自定义函数的示例。

将任意表替换为实际表。

任意表限制 1 中选择 ST_AsText(ST_Intersection(ST_Polygon(2,0, 2,3, 3,0), ST_Polygon(1,1

, 4,1, 4,4, 1,4)));

荨麻疹:

还行

多边形 ((2 1, 2.6666666666666665 1, 2 3, 2 1))

所用时间:0.191 秒,已提取:1 行

蜂巢>

相关内容

  • 没有找到相关文章

最新更新