hadoop - 当配置单元从HDFS将文件加载到表中时,如何阻止配置单元移动数据?

标签 hadoop hive

Hive版本是3.1.0,而sql是LOAD DATA INPATH 'filepath' OVERWRITE INTO TABLE tablenamefilepath可以引用一个文件(在这种情况下,Hive会将文件移至表中),也可以是一个目录(在这种情况下,Hive将将该目录内的所有文件移至表中)。我希望配置单元只能复制文件,而不希望移动到配置单元仓库目录,因为文件还在其他地方使用。我该怎么办?

最佳答案

LOAD DATA命令移动文件。如果要复制,请使用以上命令之一:

使用copyFromLocal命令:

 hdfs dfs -copyFromLocal <localsrc> URI

put命令:
 hdfs dfs -put <localsrc> ... <dst> 

如果您的文件已经在HDFS中,则可以在该目录的顶部创建表/分区,指定location,而无需完全复制它们。 ALTER TABLE SET位置也将起作用。

关于hadoop - 当配置单元从HDFS将文件加载到表中时,如何阻止配置单元移动数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52142573/

相关文章:

hadoop - 为特定的M/R作业设置 reducer 容量

hadoop - Hive 授予对数据库范围的权限

hadoop - "LOAD DATA LOCAL INPATH"如何到远程hiveserver

php hiveserver 2 问题

hadoop - 如何使用配置单元 1.2 从 s3 中的 Parquet 文件创建外部表?

hadoop - 采样 HBase 表键空间

java - Hadoop解析文件名java

java - 在 hadoop 集群上运行 mapreduce java 程序

python - 无法将python变量传递给hive -e

linux - 异常(exception)如下。 org.apache.flume.FlumeException : Unable to load source type in flume twitter analysis 异常