将数据从HDFS加载到Hive时出现问题

时间:2017-11-01 18:38:30

标签: hadoop hive hiveql

场景1: 在配置单元中创建表格时提供自定义位置,然后使用“从本地'复制”。命令加载数据。 下面的过程是直接将数据加载到我的表中。 但是,当我使用默认位置使用本地'的副本加载数据时,方案2无法正常工作。命令。因为它正在执行而没有任何错误但没有加载我的表。

方案1命令的链接---

Scenario 1 Commands - 这是将数据加载到表格中。

Scenario 2 Commands - 将场景1位置路径替换为默认配置单元路径 - 但数据未加载。

3 个答案:

答案 0 :(得分:0)

您需要复制到数据库的表目录中,而不仅仅是Hive仓库目录

在我看来,使用位置与没有太大的优势

答案 1 :(得分:0)

使用以下命令查找需要复制文件的确切位置

hive -e 'describe formatted Employee'

如果您在默认数据库中创建了表,那么该位置将是

/user/hive/warehouse/default.db/Employee 

如果你必须将文件复制到该文件夹​​

hadoop fs -put /home/weirdo/sample.txt /user/hive/warehouse/default.db/Employee/.

注意:如果要创建分区表,则将其复制到分区文件夹是不够的。需要执行msck repair table Employee以将分区信息添加到hive Metastore

答案 2 :(得分:0)

场景2:

您只是创建一个表,所以如果您不使用location关键字,将在默认仓库目录中创建数据库

 /user/hive/warehouse

为了在第二种情况下加载数据

您必须将数据文件从本地路径复制到hive默认目录(或任何hdfs路径),稍后您必须使用load命令手动加载数据。(甚至您也可以从本地路径加载数据)

LOAD DATA LOCAL INPATH '<file_path>' INTO TABLE <table_name> 

LOAD DATA INPATH '<hdfs_file_path>' INTO TABLE <table_name> 

(我们可以使用本地命令的副本复制数据)。