簡體   English   中英

如何按特定分區對配置單元中的數據進行分組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM