
# LOAD
#### 语法
LOAD DATA INPATH filepath \[OVERWRITE\] INTO TABLE tablename
\[PARTITION (partcol1=value1,partcol2=values2...)\]
#### 描述
LOAD DATA命令用于从文件或者文件夹加载数据到table。
Filepath：需要填写文件或目录的绝对路径。
OVERWRITE：如果使用了这个关键字，目标表（或分区）的数据将被删除，并使用文件中读取的数据来替代。
#### 限制
如果要加载数据到指定分区，用户必须在partition子句中列出表的所有字段。
不支持复杂类型数据，比如Array，Map等。
不支持外部表（external）。
数据文件的格式应当与目标表的文件格式一样。
创建目标表时，应该指定好文件的分隔符，并且分隔符要与数据文件中的分隔符保持一致。
#### 示例
创建文件"f1.txt"，填入3行数字，并通过HDFS上传到"/opt/load_test/"目录下。
```
--读取f1.txt的数据填充表f1
CREATE TABLE tb_load_f1(id int) with (format='TEXTFILE');
 
LOAD DATA INPATH '/opt/load_test/f1.txt' into table tb_load_f1;
 
select * from tb_load_f1;
 id 
----
  1 
  2 
  3 
(3 rows)
 
--读取/opt/load_test/目录下的文件，填充表f2
CREATE TABLE tb_load_f2(id int) with (format='TEXTFILE');
 
LOAD DATA INPATH '/opt/load_test/' into table tb_load_f2;
 
select * from tb_load_f2;
 id 
----
  1 
  2 
  3 
(3 rows)
 
--读取f3.txt文件内容填充表f3（多字段，数据分隔符为'-'）,并通过HDFS上传到/opt/load_test/ 目录下，f3.txt文件内容如下：
 1-n1
 2-n2
-- 创建目标表tb_load_f3
CREATE TABLE tb_load_f3(id int,name varchar) with(format='TEXTFILE',textfile_field_separator='-');
 
Load data inpath '/opt/load_test/f3.txt' into table tb_load_f3;
 
Select * from tb_load_f3;
id | name 
---|------
  1 | n1   
  2 | n2   
(2 rows)
```
