## 1、先创建数据库 根mysql的操作差不多
create database law;
## 2、创建数据表
use law;
create table law(
字段,数据类型
)
## 3、格式化
row format delimited fields terminated by ',' stored as textfile;
## 4、加载数据 overwrite 是覆盖原有的数据
load data inpath 'hdfs://master:9000/hdfs/data/law_utf8.csv' overwrite into table raw;
load data [local] inpath 'filepath' [overwrite] into table table_name [partition(part1=val1,part2=val2)]
说明:
1、Load
操作只是单纯的复制/移动操作,将数据文件移动到 Hive 表对应的位置
2、filepath:
相对路径,例如:project/data1
绝对路径,例如:/user/hive/project/data1
包含模式的完整 URI,如:hdfs://master:9000/user/hive/project/data1
3、local关键字
如果指定了local,load命令会去查找本地文件系统中的filepath。如果没有指定local关键字,则根据inpath中的url查找文件
4、overwrite 关键字
如果使用了overwrite关键字,则目标表(或者分区)中的内容会被删除,然后再将filepath指向的文件/目录中的内容添加到表/分区中。
如果目标表(分区)已经有一个文件,并且文件名和 filepath 中的文件名冲突,那么现有的文件会被新文件所替代。
启动meta让ied可以连接
./hive --service metastore -p 9083 &
1、加载本地数据
# 创建表
create table tb_load1(id int,name string)
row format delimited fields terminated by ',';
# 加载本地数据
load data local inpath '/home/hadoop/load1.txt' into table tb_load1;
2、加载hdfs上的数据
load data inpath '/hive/test/load2.txt' into table tb_load1;
或者:
load data inpath 'hdfs:master:9000/hive/test/load2.txt' into table tb_load1;
## 从hdfs加载数据成功后,数据会删除。
3、加载数据到分区上
# 创建分区表
create table tb_load2(id int ,name string)
partitioned by (sex string)
row format delimited fields terminated by ',';
# 加载数据,数据本身要是分区的数据
load data inpath '/hive/test/load_part_male.txt' into table tb_load2 partition (sex='male');
load data inpath '/hive/test/load_part_female.txt' into table tb_load2 partition (sex='female');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~