1

假设我有一张桌子:

db.table

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

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

.
.
-- My transforms
.
.

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

但是代码抱怨我正在用现有数据写入表中。

我查看了这张JIRA ticket,它似乎处于非活动状态(我尝试在 STORE 命令的几个地方使用 FORCE 和 OVERWRITE)。

我也看过这个SO 帖子,但作者是从一个位置加载并存储在另一个位置。如果我使用该帖子中的内容,则转换的结果是没有数据。删除文件不是一种选择。我正在考虑暂时存储文件,但我不知道这是否是最佳选择。

我正在尝试使用 INSERT OVERWRITE 获得您在 Hive 中的行为。

4

1 回答 1

2

我不熟悉HCatLoaderHCatStorer。但是,如果您LOAD往返STOREHDFS,Pig 会提供 shell 命令,使您能够在脚本中进行删除和移动。

STORE A INTO '/this/path/is/temporary';
RMF '/this/path/is/permanent';
MV '/this/path/is/temporary' '/this/path/is/permanent';
于 2013-10-07T19:40:45.113 回答