spark source releases page org descargas descargar java apache hadoop hive

java - releases - hadoop source



Crear una sección de tabla externa, la ubicación contiene varios archivos dentro (2)

CREATE EXTERNAL TABLE IF NOT EXISTS LOGS (LGACT STRING,NTNAME STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ''/t'' LOCATION ''/user/hive/warehouse/LOGS/test'';

en la carpeta ''prueba'' escribo archivos diariamente. por ejemplo:

/user/hive/warehouse/LOGS/test/20170420 /user/hive/warehouse/LOGS/test/20170421 /user/hive/warehouse/LOGS/test/20170422

No puedo ver ningún dato dentro de la tabla de LOGS que he creado.

Pero, creo la tabla usando

LOCATION ''/user/hive/warehouse/LOGS/test/20170422'';

Puedo ver los registros de esos días.

Quiero ver todos los datos debajo del directorio / test en mi tabla HIVE, también el directorio / test se llena diariamente con nuevos archivos.


Por defecto, colmena lee solo los archivos (no los directorios) dentro de la ubicación especificada en la tabla externa. Si desea habilitar la adición de directorios, configure el siguiente parámetro:

establecer mapred.input.dir.recursive = true;


Opción 1

Para soportar subdirectorios

set mapred.input.dir.recursive=true;

y si la versión de Hive es inferior a 2.0.0, entonces también

set hive.mapred.supports.subdirectories=false;

opcion 2

Crear una tabla particionada

CREATE EXTERNAL TABLE IF NOT EXISTS LOGS (LGACT STRING,NTNAME STRING) partitioned by (dt date) ROW FORMAT DELIMITED FIELDS TERMINATED BY ''/t'' LOCATION ''/user/hive/warehouse/LOGS/test'';

alter table LOGS add if not exists partition (dt=date ''2017-04-20'') LOCATION ''/user/hive/warehouse/LOGS/test/20170420''; alter table LOGS add if not exists partition (dt=date ''2017-04-21'') LOCATION ''/user/hive/warehouse/LOGS/test/20170421''; alter table LOGS add if not exists partition (dt=date ''2017-04-22'') LOCATION ''/user/hive/warehouse/LOGS/test/20170422'';

Sería más fácil de administrar si mantiene sus directorios utilizando la convención estándar, por ej. dt=2017-04-20 lugar de 20170420