[Big Data] Importación de datos por lotes en Hive

Importación masiva de datos en Hive

En el blog [Big Data] Insertar varios datos en la tabla de Hive , presenté brevemente varios métodos para insertar datos en la tabla de Hive. Sin embargo, la mayoría de las veces no insertamos datos uno por uno, sino que los importamos en lotes. En este artículo, brindaré una introducción más completa a varios métodos de importación masiva de datos a Hive.

1. Cargar (cargar) datos desde el sistema de archivos local

load data [local] inpath '路径' [overwrite] into table 表名 [partition (分区字段=,)];
  • overwrite: significa sobrescribir los datos existentes en la tabla; de lo contrario, significa agregar.
  • Este método de carga es una copia de los datos.

(1) Cree una tabla.

hive (default)> create table student(id string, name string) 
                row format delimited fields terminated by '\t';

(2) Cargue archivos locales en Hive.

hive (default)> load data local inpath '/opt/module/datas/student.txt' 
                into table default.student;

2. Cargar (cargar) datos desde el sistema de archivos HDFS

Cargar datos del sistema de archivos HDFS a la tabla es en realidad una operación de mover archivos y los datos deben cargarse al sistema de archivos HDFS con anticipación.

(1) Cargue archivos a HDFS ( /opt/module/datas/student.txtarchivos locales de Linux al /user/victor/hivedirectorio).

hive (default)> dfs -put /opt/module/datas/student.txt /user/victor/hive;

(2) Cargue datos en la tabla desde el sistema de archivos HDFS.

hive (default)> load data inpath '/user/victor/hive/student.txt' 
                into table default.student;

3. Inserte datos en la tabla a través de la selección.

hive (default)> create table if not exists student3 as select id, name from student;

4. Inserte datos en la tabla mediante insertar en

insert into table test [partition(partcol1=val1, partcol2=val2 ...)] select id,name from student;
  • insert into: inserte datos en una tabla o partición agregando datos y los datos originales no se eliminarán.
insert overwrite table test [partition(partcol1=val1, partcol2=val2 ...)] select id,name from student;
  • insert overwrite: sobrescribe los datos existentes en la tabla.

(1) Cree una tabla de particiones.

hive (default)> create table student(id string, name string) 
				partitioned by (month string) 
				row format delimited fields terminated by '\t';

(2) Inserción de datos básicos.

hive (default)> insert into table student partition(month='201801') 
				values('1004','wangwu');

(3) Inserción en modo básico (según el resultado de la consulta de una sola tabla).

hive (default)> insert overwrite table student partition(month='201802') 
				select id, name from student where month='201801';

(4) Modo de inserción múltiple (solo necesita escanear la tabla de origen una vez para generar múltiples salidas independientes).

hive (default)> from student
             	insert overwrite table student partition(month='201803')
             	select id, name where month='201801'
             	insert overwrite table student partition(month='201804')
             	select id, name where month='201801';

5. Por ubicación

Cargue archivos de datos directamente al locationdirectorio HDFS especificado;

(1) Cree una tabla y especifique su ubicación en HDFS.

hive (default)> create external table student(id int, name string)
             	row format delimited fields terminated by '\t'
             	location '/user/hive/warehouse/student';

(2) Cargue datos a HDFS.

hive (default)> dfs -mkdir -p /user/hive/warehouse/student;
hive (default)> dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student;

(3) Consultar datos.

select * from student;

Supongo que te gusta

Origin blog.csdn.net/be_racle/article/details/132462535
Recomendado
Clasificación