gpt4 book ai didi

hadoop - 当文件不在目录中时将文件从 HDFS 加载到配置单元的替代方法

转载 作者:可可西里 更新时间:2023-11-01 16:36:58 25 4
gpt4 key购买 nike

ROW FORMAT DELIMITED FIELDS TERMINATED BY '${database_delimiter}'
LINES TERMINATED BY '\n' STORED AS TEXTFILE
LOCATION '${database_location}/Person';

这里的 person 应该是一个目录。而 person 是 part-m 文件而不是目录。

最佳答案

如果我对问题的理解正确,Hive 确实无法在文件上创建表。它需要是一个目录位置。

因此,无论您有什么进程,都需要制作上述目录。

例如,无论您有什么映射器进程,您都需要指定一个输出目录,如果您没有这样做,那么您的文件将被放置在其他文件旁边的某个位置。 (尽管 MapReduce 应该失败,说目标目录已经存在)。

您可以做的是将所有零件文件移动到一个新位置

$ hdfs dfs -mkdir -p ${database_location}/Person/
$ # create hive table using that location
$ hdfs dfs -mv ${database_location}/part-m* ${database_location}/Person/
$ # run hive query

或者,如果你有原始文件,你可以做类似的事情

$ hdfs dfs -mkdir -p ${database_location}/Person/
$ # create hive table using that location
$ hdfs dfs -put somefile ${database_location}/Person/
$ # run hive query

或者使用LOCAL DATA INPATH从一个HDFS位置读取到一个Hive表

关于hadoop - 当文件不在目录中时将文件从 HDFS 加载到配置单元的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com