Hive 无法将查询结果移动到文件夹

Posted

技术标签:

【中文标题】Hive 无法将查询结果移动到文件夹【英文标题】:Hive unable to move query results to a folder 【发布时间】:2018-08-16 07:05:24 【问题描述】:

我在 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 FAILED:执行错误,从 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/

【问题讨论】:

尝试将数据插入HDFS目录,然后使用hdfs dfs -getmerge获取数据到本地机器 【参考方案1】:

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

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

【讨论】:

以上是关于Hive 无法将查询结果移动到文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何将hive查询结果导出成txt文件

如何将配置单元查询结果导出到单个本地文件?

presto和hive将查询结果保存到本地的方法

presto和hive将查询结果保存到本地的方法

几种保存Hive查询结果的方法

导出 Hive 查询结果