[英]how to group by data from hive with specific partition?
我有以下幾點:
hive>show partitions TABLENAME
pt=2012.07.28.08
pt=2012.07.28.09
pt=2012.07.28.10
pt=2012.07.28.11
hive> select pt,count(*) from TABLENAME group by pt;
OK
為什么不能通過group by
獲取數據?
檢查hive.mapred.mode
是否設置為"strict"
,如果不允許,則不允許所有分區掃描提交的查詢。 您可以將其設置為nonstrict,如下所示:
hive>set hive.mapred.mode=nonstrict;
我不確定這是否導致您的查詢沒有結果,但嘗試解決該問題。 共享結果。
注意:您可以在hive-default.xml
檢查此參數的默認值。
您始終可以使用2條select語句達到相同的效果。 對於前
Create table table1(
session_id string,
page_id string
)
partitioned by (metrics_date string);
考慮我們已經為2個分區加載了表
蜂巢>顯示分區表1
metrics_date = 2012.07.28.08
metrics_date = 2012.07.28.09
select * from table1 ;
1212121212 google.com 2012.07.28.08
1212121212 google.com 2012.07.28.09`
獲取每個分區的行數
select metrics_date,count(*) from ( select * from table1 ) temp group by metrics_date;
要獲得整個結果以及分組依據,您可以使用以下查詢。
SELECT pt,count(*) OVER (PARTITION BY pt) FROM TABLENAME;
這可以通過划分來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.