假设我有一个特定的数据分布在集群中的许多计算机上。如何使用配置单元加载数据而不必担心它的位置?谢谢
63lcw9qa1#
请参阅下面的详细信息如何从hdfs将数据加载到配置单元中。将文件加载到表中配置单元在将数据加载到表中时不进行任何转换。加载操作目前是纯复制/移动操作,将数据文件移动到与配置单元表对应的位置。语法
LOAD DATA INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
简介加载操作目前是纯复制/移动操作,将数据文件移动到与配置单元表对应的位置。i) -文件路径可以是:相对路径,如project/data1绝对路径,如/user/hive/project/data1具有scheme和(可选)权限的完整uri,例如hdfs://namenode:9000/用户/配置单元/项目/数据1ii)-加载到的目标可以是表或分区。如果表已分区,则必须通过为所有分区列指定值来指定表的特定分区。iii)-filepath可以引用一个文件(在这种情况下,hive会将文件移到表中),也可以是一个目录(在这种情况下,hive会将该目录中的所有文件移到表中)。无论哪种情况,filepath都会寻址一组文件。iv)-如果未指定关键字local,则配置单元将使用filepath的完整uri(如果已指定),或者将应用以下规则:如果没有指定scheme或authority,hive将使用hadoop配置变量fs.default.name中指定namenode uri的scheme和authority。如果路径不是绝对路径,那么hive将相对于/user来解释它/配置单元会将文件路径寻址的文件移动到表(或分区)中v) -如果使用overwrite关键字,则目标表(或分区)的内容将被删除并替换为filepath引用的文件;否则,filepath引用的文件将添加到表中。请注意,如果目标表(或分区)已有一个文件,其名称与filepath中包含的任何文件名冲突,则现有文件将替换为新文件。请参阅以下链接的完整详细信息。https://cwiki.apache.org/confluence/display/hive/languagemanual+dml
1条答案
按热度按时间63lcw9qa1#
请参阅下面的详细信息如何从hdfs将数据加载到配置单元中。
将文件加载到表中
配置单元在将数据加载到表中时不进行任何转换。加载操作目前是纯复制/移动操作,将数据文件移动到与配置单元表对应的位置。
语法
简介
加载操作目前是纯复制/移动操作,将数据文件移动到与配置单元表对应的位置。
i) -文件路径可以是:
相对路径,如project/data1
绝对路径,如/user/hive/project/data1
具有scheme和(可选)权限的完整uri,例如hdfs://namenode:9000/用户/配置单元/项目/数据1
ii)-加载到的目标可以是表或分区。如果表已分区,则必须通过为所有分区列指定值来指定表的特定分区。
iii)-filepath可以引用一个文件(在这种情况下,hive会将文件移到表中),也可以是一个目录(在这种情况下,hive会将该目录中的所有文件移到表中)。无论哪种情况,filepath都会寻址一组文件。
iv)-如果未指定关键字local,则配置单元将使用filepath的完整uri(如果已指定),或者将应用以下规则:
如果没有指定scheme或authority,hive将使用hadoop配置变量fs.default.name中指定namenode uri的scheme和authority。
如果路径不是绝对路径,那么hive将相对于/user来解释它/
配置单元会将文件路径寻址的文件移动到表(或分区)中
v) -如果使用overwrite关键字,则目标表(或分区)的内容将被删除并替换为filepath引用的文件;否则,filepath引用的文件将添加到表中。
请注意,如果目标表(或分区)已有一个文件,其名称与filepath中包含的任何文件名冲突,则现有文件将替换为新文件。
请参阅以下链接的完整详细信息。
https://cwiki.apache.org/confluence/display/hive/languagemanual+dml