开发者学堂课程【大数据Hive教程精讲:Apache Hive--DML--load装载数据】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/90/detail/1375
Apache Hive--DML--load装载数据
DML操作:
Load
在将数据加载到表中时,Hive不会进行任何转换。加载操作是将数据文件移动到与Hive表对应的位置的纯复制/移动操作。
语法结构
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO
TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
说明:
1、filepath
相对路径,例如: project/datal
绝对路径,例如:/user/hive/project/datal
完整URI,例如: hdfs: //namenode : 9000/user/hive/project/datal
filepath可以引用一个文件(在这种情况下,Hive 将文件移动到表中),或者它可以是一个目录(在这种情况下,Hive将把该目录中的所有文件移动到表中)。
2、LOCAL
如果指定了 LOCAL,load 命令将在本地文件系统中查找文件路径。
load 命令会将 filepath 中的文件复制到目标文件系统中。目标文件系统由表的位置属性决定。被复制的数据文件移动到表的数据对应的位置。
如果没有指定 LOCAL 关键字,如果 filepath 指向的是一个完整的 URl,hive 会直接使用这个 URI。否则:如果没有指定 schema 或者 authority,Hive 会使用在 hadoop配置文件中定义的 schema 和 authority,fs.default.name指定了 Namenode 的 URI。
3、OVERWRITE
如果使用了 OVERWRITE 关键字,则目标表(或者分区)中的内容会被删除,然后再将filepath指向的文件/目录中的内容添加到表/分区中。
如果目标表(分区)已经有一个文件,并且文件名和 filepath中的文件名冲突,那么现有的文件会被新文件所替代。
1: jdbc:hive2://node-1:10000> 1oad data 1oca1 INPATH'/root/hivedata/1.txt
’INTO TABLE t_t2;
INFo : Loading data to table itcast.t_t2 from file:/root/hivedata/1.txt
INFO : Table itcast.t_t2 stats: [numFi1es=2, totaisize=62]
No rows affected (o.196 seconds)
1: jdbc:hive2:/ /node-1:10000>
[root@node-1 hivedata]# rzrz waiting to receive.
starting zmodem transfer. Press Ctr1+C to cance1.
Transferring students.txt...
,
100% 526 bytes 526 bytes /sec 0o:00:01 o Errors
[root@node-1 hivedata]# hadoop fs -mkdir /stu
[root@node-1 hivedataj# hadoop fs -put students.txt /stu
[root@node-1 hivedataj#