Pig:在表中加载,然后在转换后覆盖该表

问题描述 投票:1回答:1

假设我有一张桌子:

db.table

我加载表并对其进行一些转换,最后尝试存储它

mytable = LOAD 'db.table' USING HCatLoader();

.
.
-- My transforms
.
.

STORE mytable_final INTO 'db.table' USING HCatStorer();

但是代码抱怨我正在写一个包含现有数据的表。

我看过这个JIRA ticket,它似乎是不活动的(我已尝试在STORE命令的几个地方使用FORCE和OVERWRITE)。

我也看了this SO帖子,但作者从一个位置加载并存储在不同的位置。如果我使用该帖子中的内容,则转换的结果不是数据。删除文件不是一个选项。我想暂时存储文件,但我不知道这是不是最好的选择。

我试图通过INSERT OVERWRITE获取你在Hive中获得的行为。

apache-pig overwrite
1个回答
2
投票

我不熟悉HCatLoaderHCatStorer。但是如果你从LOADSTORE到HDFS,那么Pig会提供shell命令,使你能够在脚本中进行删除和移动。

STORE A INTO '/this/path/is/temporary';
RMF '/this/path/is/permanent';
MV '/this/path/is/temporary' '/this/path/is/permanent';
© www.soinside.com 2019 - 2024. All rights reserved.