1.Insert语法功能
1.1 暴力方式上传
1.2 使用 hadoop fs -put 方式上传
1.3. 使用load 加载数据 !!!
hive 官方推荐第三种方式 !!!
基于上图 在hive中 insert into table values... 这样的语法禁止使用!
推荐使用:
INSERT INTO TABLE tablename select_statement1 FROM from_statement;
insert +select 表示:
将后面的查询结果作为内容插入到指定的表中.
注意事项:
1.需要保证查询结果列的数目和需要插入的数据表的列的数据一致
2.如果查询出来的数据类型和拆入表的数据类型不一致,将会进行转换,但是不能保证转换一定成功[ string int ],转换失败的数据会为null <注意数据类型要一致>
INSERT INTO TABLE tablename select_statement1 FROM from_statement;
bash
-- 2025年08月08日
show databases ;
show schemas ;
show tables ;
--新建数据库
create database shaonainai;
-- 用一下库
use shaonainai;
-- 本地上传表
create table student_local(
num int,
name string,
sex string,
age int ,
dept string
) row format delimited
fields terminated by ',';
create table student_hdfs(
num int,
name string,
sex string,
age int ,
dept string
) row format delimited
fields terminated by ',';
load data local inpath '/export/data/hivedata/students.txt' into table shaonainai.student_local;
load data inpath '/students.txt' into table shaonainai.student_hdfs;
select * from student_hdfs;
-- 讲解 INSERT INTO TABLE tablename select_statement1 FROM from_statement;
create table student(
num int,
name string,
sex string,
age int ,
dept string
) row format delimited
fields terminated by ',';
-- 加载数据
load data local inpath '/export/data/hivedata/students.txt' into table shaonainai.student;
select * from student;
-- 新建两列的表 等待数据插入
create table student_from_insert(
num int,
name string
) ;
select * from student_from_insert;
-- 语法 INSERT INTO TABLE 要插入数据的表 select 列名1,列名2... FROM 有数据的表;
INSERT INTO TABLE student_from_insert select num,name FROM student;
select * from student_from_insert;