End ındex'in sql'de negatif olmaması nasıl düzeltilir?

0

Soru

Merhaba Aşağıdaki gibi basit bir sorgu içeren bir tablo oluşturmaya çalışıyorum:

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

Ancak, bir hata alıyorum

GENERİC_İNTERNAL_ERROR: bitiş dizini (-2147483642) negatif olmamalıdır

Ve manifest'te belirtilen konumlardaki verileri manuel olarak temizlemem gerekiyor. Athena hesabınızdaki verileri silmez.

Bu yüzden, her metrik için tanımlanmış biçime sahip süper boş bir tablo (aşağıdaki sorgu) oluşturmaya çalıştım ve yukarıdaki sorguyu bu süper tabloya ekledim. Ama hala aynı hatayı verir. Birisi bu sorunu çözmeme yardım edebilir mi?

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

En iyi cevabı

0

Hatadan emin değilim (büyük bir sütun değeri olabilir mi?). Bu yaklaşımı deneyin:

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

Diğer dillerde

Bu sayfa diğer dillerde

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