目录
普通表:
load data【 local 】 inpath ' 数据文件路径 ' [overwrite] into table 表名 ;
--overwrite into table 覆盖添加
-- intotable 追加
从linux本地导入数据到表中
sql
load data local inpath '/home/test2/emp_data.txt' overwrite into table emp;
从HDFS上导入数据到表中
sql
load data inpath '/emp_data.txt' overwrite into table emp;
分区表:
load data【 local 】 inpath ' 数据文件路径 ' [overwrite] into table 表名 partition ( 分区字段 =
值 );
sql
load data local inpath '/home/test2/emp_data_Finance.txt' into table emp_partition
partition(dept_name='Finance');
若Finance分区存在,向分区中加载数据,若分区不存在,创建分区,并加载数据
sql
select * from emp_partition where dept_name='Finance';
-- 开启动态分区开关
set hive.exec.dynamic.partition.mode=nonstrict;
sql
insert overwrite table emp_partition partition(dept_name)
select * from emp_pt;
分桶表:
-- 开启分桶功能
set hive.enforce.bucketing=true;
-- 忽略掉安全检查
set hive.strict.checks.bucketing=false;
sql
load data local inpath '/home/test2/emp_data_Sales.txt' overwrite into table emp_bucket;
数据导出
sql
INSERT OVERWRITE LOCAL DIRECTORY '/home/test2'
ROW FORMAT DELIMITED FIELDS TERMINATED by '\t'
select * from emp_pt;