Jak naprawić końcowy indeks, który nie musi być negatywny w SQL?

0

Pytanie

Witam, próbuję stworzyć tabelę za pomocą prostego zapytania, jak pokazano poniżej:

select distinct 
    b.week_start_date,
    count(distinct visitor_id) as uu,
    count(distinct visit_id) as session,
    sum(1) FILTER (WHERE event_name = 'pageview') AS pageview
from  
    table a
join 
    table b on a.date = b.cy_date_num_yyyymmdd
where 
    a.date between '20211107' and '20211113' 
group by 
    1

Jednak pojawia się błąd:

GENERIC_INTERNAL_ERROR: końcowy indeks (-2147483642) nie musi być ujemna

I muszę ręcznie wyczyścić dane z miejsc, o których mowa w manifeście. Atena nie będzie usuwać dane do konta.

Dlatego starałem się stworzyć super pustą tabelę (żądanie poniżej) z określonym formatem dla każdej metryki, a następnie wkleić powyższy wniosek w tej super tabeli. Ale on wciąż zwraca ten sam błąd. Czy ktoś może mi pomóc rozwiązać ten problem?

CREATE EXTERNAL TABLE IF NOT EXISTS database.super_table 
(
    week_start_date date,
    uu bigint,
    session bigint,
    pageview bigint
)ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
  's3://abc-dataeng-temp-prod/xyz/product/'
TBLPROPERTIES (
  'has_encrypted_data'='false', 
  'parquet.compression'='GZIP');
1

Najlepsza odpowiedź

0

Nie jestem pewien błąd (być może duże znaczenie kolumny?). Spróbuj ten podejście:

select
   b.week_start_date,
   count(distinct visitor_id) as uu,
   count(distinct session) as session,
   sum(1) as pageview
from table a
join table b on a.date = b.cy_date_num_yyyymmdd
where a.date between '20211107' and '20211113' 
and visitor_id is not null and session_id is not null and event_name = 'pageview'
group by 1
2021-12-06 00:50:41

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................