场景1: 在配置单元中创建表格时提供自定义位置,然后使用“从本地'复制”。命令加载数据。 下面的过程是直接将数据加载到我的表中。 但是,当我使用默认位置使用本地'的副本加载数据时,方案2无法正常工作。命令。因为它正在执行而没有任何错误但没有加载我的表。
方案1命令的链接---
Scenario 1 Commands - 这是将数据加载到表格中。
Scenario 2 Commands - 将场景1位置路径替换为默认配置单元路径 - 但数据未加载。
答案 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)
/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>
(我们可以使用本地命令的副本复制数据)。