我有一个返回扩展名的UDF(GetUrlExt)。 (例如:/abc/models/xyz/images/top.jpg中的jpg)。 的数据是像图所示:蜂巢:UDF和GROUP BY
Date Time TimeTaken uristem
9/5/2011 0:00:10 234 /abc/models/xyz/images/top.jpg
9/5/2011 0:00:11 456 /abc/models/xyz/images/bottom.jpg
9/5/2011 0:00:14 789 /abc/models/xyz/images/left.gif
9/5/2011 0:00:16 234 /abc/models/xyz/images/top.pdf
9/5/2011 0:00:18 734 /abc/models/xyz/images/top.pdf
9/5/2011 0:00:19 654 /abc/models/xyz/images/right.gif
9/5/2011 0:00:21 346 /abc/models/xyz/images/top.pdf
9/5/2011 0:00:24 556 /abc/models/xyz/images/front.pdf
9/5/2011 0:00:26 134 /abc/models/xyz/images/back.jpg
而不 'GROUP BY' 查询工作正常:
SELECT GetUrlExt(uristem) AS extn FROM LogTable;
结果: JPG JPG GIF PDF PDF GIF PDF pdf jpg
现在我需要'GROUP BY'GetUrlExt UDF的结果。
预期结果:
JPG 3 274.6
GIF 2 721.5
PDF 4 467.5
但下面的查询不工作:
SELECT GetUrlExt(uristem) AS extn, Count(*) AS PerCount, Avg(TimeTaken) AS AvgTime FROM LogTable GROUP BY extn;
任何形式的帮助表示赞赏!
您可以通过计算值组,只是不能使用列别名上的功能已被[应用](https://cwiki.apache.org/Hive/languagemanual-udf.html#LanguageManualUDF-GROUPingandSORTingonf%2528column%2529)。所以可以指定'GROUP BY GetUrlExt(uristem)',但子查询可能更好。 – libjack
谢谢,两者在执行时间上没有太大的区别。 – Seenu