我想了解UDF WeekOfYear以及它如何在第一周开始。我不得不人为地敲击一个表并运行查询。我想不要碰到桌子并计算价值。其次,我可以看一下UDF源代码吗?
SELECT weekofyear
('12-31-2013')
from a;
从Hive 0.13.0开始,您不需要表来测试UDF。
看到这个Jira:HIVE-178 SELECT without FROM should assume a one-row table with no columns
测试:
hive> SELECT weekofyear('12-31-2013');
结果:
OK
1
Time taken: 0.912 seconds, Fetched: 1 row(s)
源代码(主分支)在这里:UDFWeekOfYear.java
如果您是Java开发人员,可以编写Junit测试用例并测试UDF。
您可以在grepcode中搜索所有内置函数的hive的源代码。
我不认为在Hive中可以在没有命中表的情况下执行UDF。甚至Hive开发人员在UDF测试中使用hit the table。
要使查询运行更快,您可以:
您应该能够使用任何至少有一行的表来测试函数。下面是一个使用一些自定义函数执行工作并输出字符串结果的示例。
用实际表替换anytable。
SELECT ST_AsText(ST_Intersection(ST_Polygon(2,0,2,3,3,0),ST_Polygon(1,1,4,1,4,4,1,4)))FROM anytable LIMIT 1;
HIVE结果:
好
POLYGON((2 1,2666666666666665 1,2 3,2 1))
所用时间:0.191秒,提取时间:1排
蜂巢>