es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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');
Tags:  , , ,

Answer

  1. Avatar for 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:

    1. Verifique los datos en su tabla de entrada (es decir, tabla a y b) y asegúrese de que no haya valores negativos o anomalías que puedan estar causando el error.
    2. 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.

    3. 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.

Comments are closed.