hadoop - traduccion - Cómo cargar un archivo de texto en una tabla Hive almacenada como archivos de secuencia
hive summoners war (2)
No puede crear directamente una tabla almacenada como un archivo de secuencia e insertar texto en ella. Tienes que hacer esto:
- Crea una tabla almacenada como texto
- Inserta el archivo de texto en la tabla de texto
- Haga un CTAS para crear la tabla almacenada como un archivo de secuencia.
- Suelta la tabla de texto si lo deseas
Ejemplo:
CREATE TABLE test_txt(field1 int, field2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ''/t'';
LOAD DATA INPATH ''/path/to/file.tsv'';
CREATE TABLE test STORED AS SEQUENCEFILE
AS SELECT * FROM test_txt;
DROP TABLE test_txt;
Tengo una tabla de colmenas almacenada como un archivo de secuencia.
Necesito cargar un archivo de texto en esta tabla. ¿Cómo cargo los datos en esta tabla?
Puede cargar el archivo de texto en una tabla Hive de archivos de texto y luego insertar los datos de esta tabla en su secuencia de archivos.
Comience con un archivo delimitado por tabuladores:
% cat /tmp/input.txt
a b
a2 b2
crea un archivo de secuencia
hive> create table test_sq(k string, v string) stored as sequencefile;
intenta cargar; como se esperaba, esto fracasará:
hive> load data local inpath ''/tmp/input.txt'' into table test_sq;
Pero con esta tabla:
hive> create table test_t(k string, v string) row format delimited fields terminated by ''/t'' stored as textfile;
La carga funciona bien:
hive> load data local inpath ''/tmp/input.txt'' into table test_t;
OK
hive> select * from test_t;
OK
a b
a2 b2
Ahora cargue en la tabla de secuencias desde la tabla de texto:
insert into table test_sq select * from test_t;
También puede cargar / insertar con sobrescribir para reemplazar todo.