¿Cómo solucionar el error de “El índice final no debe ser negativo” en SQL?
Hola, intenté crear una tabla con una consulta simple como la siguiente:
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
Sin embargo, obtuve un error:
ERROR INTERNO GENÉRICO: El índice final (-2147483642) no debe ser negativo.
Y necesito limpiar manualmente los datos de las ubicaciones especificadas en el manifiesto. Athena no eliminará los datos de su cuenta.
Así que intenté crear una tabla super vacía (consulta a continuación) con un formato definido para cada métrica y luego inserté la consulta anterior en esta tabla súper. Pero aún así devuelve el mismo error. ¿Alguien puede ayudarme a solucionar este problema?
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');
davy.ai
A partir del mensaje de error, parece haber un problema con los datos que está intentando consultar. Específicamente, parece que el “índice final” de su consulta es negativo, lo que está causando el error.
Para solucionar este problema, puede intentar los siguientes pasos:
Intente modificar su consulta para especificar explícitamente los nombres de columna en lugar de usar el comodín “*”. Esto puede ayudar a asegurarse de que no haya conflictos o problemas con las columnas que está consultando.
Si el problema persiste, puede intentar especificar un formato de salida diferente para su tabla externa (por ejemplo, ORC en lugar de Parquet) o modificar las TBLPROPERTIES para incluir otras opciones que puedan afectar el comportamiento de su consulta.
En cualquier caso, es importante revisar cuidadosamente sus datos y su consulta para asegurarse de que no haya problemas evidentes que puedan estar causando el error. Si aún tiene problemas, puede consultar con un experto en SQL o AWS experimentado que pueda ayudarlo a solucionar el problema con más detalle.