/ / Hive - Cargando en la ubicación predeterminada de la tabla externa - hive, hiveql

Colmena - Cargando en la ubicación predeterminada de la tabla externa - colmena, colmena

Tengo una tabla externa creada en hive con ubicación predeterminada

 CREATE EXTERNAL TABLE `testtable`(
`id` int,
`name` string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ","
STORED AS INPUTFORMAT
"org.apache.hadoop.mapred.TextInputFormat"
OUTPUTFORMAT
"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
LOCATION
"<hdfs-uri>/hive/warehouse/testtable"

¿Desearía confirmar si puedo mover un archivo de texto que contenga los valores de ID / nombre de la ubicación local a HDFS /hive/warehouse/testtable/test.txt para la tabla de prueba de la tabla externa? Gracias.

Respuestas

0 para la respuesta № 1

Sí. Puedes subir test.txt de local al HDFS ubicación para mesa externa testtable (<hdfs-uri>/hive/warehouse/testtable). Esto funcionará incluso si <hdfs-uri>/hive/warehouse/ es el predeterminado Hive Directorio del almacén.

Solo para tener en cuenta - Para no externos (llamados Gestionado por colmenas) mesas, al caer la mesa se caerá su almacén HDFS directorio de forma automática. por externo mesa, dejando caer la mesa no caerá la HDFS el directorio lo respalda, y debe eliminarse como una operación separada.

Ilustración:

Here the Hive warehouse directory is hdfs:///apps/hive/warehouse

Crear mesa

hive> CREATE EXTERNAL TABLE `testtable`(
`id` int,
`name` string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ","
STORED AS INPUTFORMAT
"org.apache.hadoop.mapred.TextInputFormat"
OUTPUTFORMAT
"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
LOCATION "hdfs:///apps/hive/warehouse/testtable";

Datos en test.txt

1,name-1
2,name-2
3,name-3

Subir datos a HDFS

hadoop fs -put test.txt hdfs:///apps/hive/warehouse/testtable

Tabla de consulta

hive> select * from testtable;
1   name-1
2   name-2
3   name-3