Hive Load语句不会在加载数据的时候做任何转换工作,而是纯粹的把数据文件复制/移动到Hive表对应的地址。
语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1,partcol2=val2 ...)]
描述
-
如果命令中带有LOCAL,说明从本地文件系统加载数据,文件路径可以是相对路径,也可以是绝对路径。在这种情况下,首先将文件从本地复制到hdfs相应的位置,然后移动到hive表格中,这个时候原始数据文件是存在于hive表之下的路径下。这一点我会专门写一篇关于hive外部表的相应博文。
-
如果命令中没有LOCAL,代表我们的数据是从hdfs中读取文件,这个时候如果我们使用的是内部表,相应的hdfs的原始文件会消失,进入到相应的表格中。
-
filepath 可以是一个相对路径,也可以是一个绝对路径。可以是一个文件,也可以是一个文件夹目录(这个时候文件夹下的所有文件都会被加载),
-命令中如果带有overwirte,代表加载数据之前会清空目标表格,否则就是追加的方式。