我有一个低于hive继承权的数据集,数据集的大小以tb为单位。
-Country
-Year
-In_stock
-Zone
-trans_dt
我需要在区域内按升序对事务进行排序(其中一个区域占数据集的80%),这是对数据集进行排序的最有效的方法。我一共有10个国家,每个国家有大约100个区域。一旦trans\u dt被排序,我需要对collect\u集执行操作,因此排序在我的例子中非常重要。
我试着按年份划分数据集,然后在trans\u dt desc上应用cluster by,但排序似乎没有按预期工作。
CREATE TABLE TEST.TABLENAME STORED AS ORC AS
(
COUNTRY INT,
YEAR STRING,
In_stock INT,
ZONE STRING,
TRANS_DT STRING,
|
|
MORE COLUMNS
)
FROM SOURCETABLE PARTITION BY (YEAR,IN_STOCK)
INSERT OVERWRITE TABLE TEST.TABLENAME PARTITION(YEAR, IN_STOCK)
SELECT
|
|
FROM SOURCETABLE CLUSTER BY trans_dt;
SELECT
a.country,
a.zone,
collect_set(a.prod_id) AS prod_seq
count(*) as count
FROM SOURCETABLE WHERE IN_STCK=1
GROUP BY
a.country,
a.zone
;
暂无答案!
目前还没有任何答案,快来回答吧!