根据我的要求,我必须在配置单元中实现上限和下限。为此,我试图写这样的查询
SELECT * FROM `your_table` LIMIT 0, 5
SELECT * FROM `your_table` LIMIT 5, 5
但是hive仅支持1个限制,它不支持上限和下限。我尝试使用其他替代方法来实现这一点,使用RANK(),ROWNUM()但没有成功。
任何人都可以帮我解决这个问题。提前谢谢。
答案 0 :(得分:0)
您好,您可以使用Facebook UDF和rownum功能
从GITHUB下载Facbook UDF 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 ;