假设我有一张桌子:
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中获得的行为。
答案 0 :(得分:2)
我不熟悉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';