2016-05-25 4 views
0

ハイブのコードは次のように:グループ化セット(キューブロールアップ)を使用すると、grouping__idをstmtでフィルタリングできないのはなぜですか?

set mapred.reduce.tasks = 100; 
create table order_dimensions_cube as 
select 
     grouping__id as groupid, 
     user_level    , 
     city_level    , 
     region_name   , 
     province_name   , 
     city_name    , 
     platform    , 
     sale_type    , 
     item_first_cate_name , 
     app_module    , 
     department    , 
     sum(COALESCE(complete_sum, 0)) as complete_price 
from 
     data 
group by 
     user_level   , 
     city_level   , 
     region_name   , 
     province_name  , 
     city_name   , 
     platform   , 
     sale_type   , 
     item_first_cate_name, 
     app_module   , 
     department 
with cube having grouping__id >= 704; 

これは、レコードが生成されていないことが判明しました。

詳細情報:データ:

  1. 私は、テーブル内のレコードをたくさん持っていることを確認しました。
  2. 私はstmtを持たずにこのSQLを試してみましたが、多くのレコードが生成されています。

なぜこのようなことが起こり、結果にいくつかの制約を加える必要がある場合、これを解決する方法はありますか?

ありがとうございました。

答えて

0

あなたが実際のデータを提供しなかったので、次のことを試してください。

select grouping_id,count(*) from 
(select 
     grouping__id as groupid, 
     user_level    , 
     city_level    , 
     region_name   , 
     province_name   , 
     city_name    , 
     platform    , 
     sale_type    , 
     item_first_cate_name , 
     app_module    , 
     department    , 
     sum(COALESCE(complete_sum, 0)) as complete_price 
from 
     data 
group by 
     user_level   , 
     city_level   , 
     region_name   , 
     province_name  , 
     city_name   , 
     platform   , 
     sale_type   , 
     item_first_cate_name, 
     app_module   , 
     department 
with cube) A 
group by grouping_id 

、各grouping__idのためにそこにあるどのように多くのレコードを参照してください。そこにいくつかの問題がある可能性があります。また - これは

を行くかを理解するために裁判の解決策が、より多くのではありません

select * from 
(select 
     grouping__id as groupid, 
     user_level    , 
     city_level    , 
     region_name   , 
     province_name   , 
     city_name    , 
     platform    , 
     sale_type    , 
     item_first_cate_name , 
     app_module    , 
     department    , 
     sum(COALESCE(complete_sum, 0)) as complete_price 
from 
     data 
group by 
     user_level   , 
     city_level   , 
     region_name   , 
     province_name  , 
     city_name   , 
     platform   , 
     sale_type   , 
     item_first_cate_name, 
     app_module   , 
     department 
with cube) A 
where grouping__id >= 704 

に外側のクエリを変更してみて、問題が解決しないかどうか確認...

関連する問題