首页 > 解决方案 > Hive 无法将查询结果移动到文件夹

问题描述

我在 hive 中编写了一个选择查询,以将数据移动到特定文件夹。但我收到一个错误。请帮忙。

将数据移动到本地目录 /Dataproviders/DataSurgery/Order/out/jul24msngtxn/negtxns 失败并出现异常无法移动源 hdfs://mycluster/tmp/hive/sshuser/253d3089-fcc0-4656-82ca-ccbe893196ed/hive_2018-08- 16_06-58-29_220_388527949811395742-1/-mr-10000 到目的地 /Dataproviders/DataSurgery/Order/out/jul24msngtxn/negtxns 失败:执行错误,从 org.apache.hadoop.hive.ql.exec.MoveTask 返回代码 1

    INSERT OVERWRITE LOCAL DIRECTORY '/Dataproviders/DataSurgery/Order/out/jul24msngtxn/negtxns/'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\034'
STORED AS TEXTFILE
select * from sourcetable;

我已授予以下文件夹的完全权限。但问题依然存在

hdfs dfs -chmod 777 /tmp/hive
hdfs dfs -chmod -R 777 /Dataproviders/DataSurgery/

标签: hivebigdatahiveql

解决方案


我犯了一个可怕的错误。不应该存在关键字 LOCAL 来写入 hdfs 目录。我删除了它并且查询工作正常。请找到正确的查询。

INSERT OVERWRITE DIRECTORY '/Dataproviders/DataSurgery/Order/out/jul24msngtxn/negtxns/'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\034'
STORED AS TEXTFILE
select * from sourcetable;

推荐阅读