对于我的要求,我必须实现蜂巢上限和下限。 对于我想写查询是这样的
SELECT * FROM `your_table` LIMIT 0, 5
SELECT * FROM `your_table` LIMIT 5, 5
但是蜂房仅支持1的限制,它不支持上限和下限。 我与其他替代品尝试用RANK(),ROWNUM(),但没有成功实现这一目标。
任何人都可以请帮我解决这个问题。 提前致谢。
对于我的要求,我必须实现蜂巢上限和下限。 对于我想写查询是这样的
SELECT * FROM `your_table` LIMIT 0, 5
SELECT * FROM `your_table` LIMIT 5, 5
但是蜂房仅支持1的限制,它不支持上限和下限。 我与其他替代品尝试用RANK(),ROWNUM(),但没有成功实现这一目标。
任何人都可以请帮我解决这个问题。 提前致谢。
嗨,你可以使用Facebook UDF和ROWNUM功能
下载Facbook UDF的从GitHub https://github.com/brndnmtthws/facebook-hive-udfs
创建一个从该UDF项目的jar文件
您可以从本地路径在蜂巢控制台添加jar文件。
ADD JAR s3n://obfuscated-path/assets/jars/facebook-udfs-1.0.jar;
CREATE TEMPORARY FUNCTION NumberRows AS 'com.facebook.hive.udf.UDFNumberRows';
SELECT
A.product_id,
A.category,
A.product_name,
A.brand,
A.rank_score,
CAST(NumberRows(A.category) as FLOAT),
FROM (
SELECT
product_id,
category,
product_name,
brand,
A.rank_score
FROM
source_table
DISTRIBUTE BY
category
SORT BY
category, rank_score desc
) A ;
一些更多的参考https://issues.apache.org/jira/browse/HIVE-1545
如何添加行号在猪或HIVE行?