Saltar al contenido

¿Cómo eliminar registros duplicados de la tabla Hive?

Si encuentras algún detalle que no entiendes puedes dejarlo en la sección de comentarios y te ayudaremos lo más rápido posible.

Solución:

Puede usar la declaración de sobrescritura de inserción para actualizar los datos

insert overwrite table dynpart select distinct * from dynpart;

En caso de que su tabla tenga filas duplicadas en pocas columnas o en columnas seleccionadas. Suponga que tiene una estructura de tabla como se muestra a continuación:

id  Name    Technology
1   Abcd    Hadoop
2   Efgh    Java       --> Duplicate
3   Ijkl    Mainframe
2   Efgh    Python     --> Duplicate

Aquí las columnas de identificación y nombre tienen filas duplicadas. Puede usar la función analítica para obtener la fila duplicada como:

select * from
(select Id,Name,Technology,
row_Number() over (partition By Id,Name order by id desc) as row_num
from yourtable)tab
where row_num > 1;

Esto le dará salida como:

id  Name    Technology  row_num
2   Efgh    Python           2

Cuando necesite obtener ambas filas duplicadas:

select * from
(select Id,Name,Technology,
count(*) over (partition By Id,Name order by id desc) as duplicate_count
from yourtable)tab
where duplicate_count> 1;

Salida como:

id  Name    Technology  duplicate_count
2   Efgh    Java             2
2   Efgh    Python           2

puede insertar registros distintos en alguna otra tabla

create table temp as select distinct * from dynpart

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *