Saltar al contenido

Hive ¿Cómo seleccionar todas las columnas menos una?

Solución:

Intente configurar la siguiente propiedad

set hive.support.quoted.identifiers=none;

Luego seleccione todas las columnas excepto col_21:

select `(col_21)?+.+` from <table_name>; 

Para obtener más información, consulte este enlace.

Entonces la declaración de inserción será

insert into <tablename> partition (col21) 
select `(col_21)?+.+` from ( --select all columns from subquery except col21
select *, unix_timestamp() AS alias_col21 from table_name --select *, create new col based on col21
)a;

Al utilizar este enfoque, tendrá alias_col21 como última columna en su declaración de selección para que pueda particionar en función de esa columna.

En caso de uniones:

No podemos referirnos columnas individuales(t1.id)?+.+..etc) de cada tabla, así que suelte las columnas innecesarias en la declaración de selección.

hive>insert into <tablename> partition (col21)
select * from (
       select t1.* from
         (--drop col21 and create new alias_col21 by using col21
          select `(col21)?+.+`, unix_timestamp() AS alias_col21 from table1
         ) t1 
    join table2 t2 
  on t1.<col-name>=t2.<col-name>)a;
¡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 *