假设我有一张桌子:
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中获得的行为。
我不熟悉HCatLoader
和HCatStorer
。但是如果你从LOAD
和STORE
到HDFS,那么Pig会提供shell命令,使你能够在脚本中进行删除和移动。
STORE A INTO '/this/path/is/temporary';
RMF '/this/path/is/permanent';
MV '/this/path/is/temporary' '/this/path/is/permanent';