LOAD DATA INPATH 'file_1/path/hdfs' INTO TABLE tablename;
LOAD DATA INPATH 'file_2/path/hdfs' INTO TABLE tablename;
.......
or
LOAD DATA LOCAL INPATH 'file_1/path/local' INTO TABLE tablename;
LOAD DATA LOCAL INPATH 'file_2/path/local' INTO TABLE tablename;
.... into关键字在一个文件之后附加数据文件。不要误用覆盖。 b) 当文件位于一个目录中时:
LOAD DATA INPATH 'dir/path/hdfs' INTO TABLE tablename;
or,
LOAD DATA LOCAL INPATH 'dir/path/local' INTO TABLE tablename;
imp:当目录包含非数据文件(很可能在hdfs中)时,上面的命令抛出错误。例如,pig(或其他工具)生成了一个名为my\ u data\ u dir的dir。在myu data目录下有两个数据文件/myu data目录/part-m-00000和/myu data目录/part-m-00001。还有一个名为/my\u data\u dir/\u logs的日志文件 在这种情况下,如果您运行上面的命令,它会在提到日志文件时出错。删除日志文件和以上命令工作正常。
3条答案
按热度按时间dkqlctbz1#
a) 可以多次使用以下命令加载多个文件:
....
into关键字在一个文件之后附加数据文件。不要误用覆盖。
b) 当文件位于一个目录中时:
imp:当目录包含非数据文件(很可能在hdfs中)时,上面的命令抛出错误。例如,pig(或其他工具)生成了一个名为my\ u data\ u dir的dir。在myu data目录下有两个数据文件/myu data目录/part-m-00000和/myu data目录/part-m-00001。还有一个名为/my\u data\u dir/\u logs的日志文件
在这种情况下,如果您运行上面的命令,它会在提到日志文件时出错。删除日志文件和以上命令工作正常。
w8f9ii692#
为什么不通过指定某个位置在配置单元中创建一个外部表并将文件转储到该特定位置呢。您的外部表将自动拾取转储在该文件夹中的任何少数文件(如果架构相同)。
6l7fqoea3#
只需使用标准配置单元语法:
这里filepath可以指:
相对路径相对路径,如
project/data1
绝对路径,如/user/hive/project/data1
具有scheme和(可选)权限的完整uri,例如hdfs://namenode:9000/user/hive/project/data1
filepath可以是一个目录,并且该目录中的所有文件都将移动到表中。来源:hive语言手册