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

5jdjgkvh  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(274)

假设我有一张table:

db.table

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

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

.
.
-- My transforms
.
.

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

但代码抱怨我正在用现有数据写入一个表。
我已经查看了这个jira票证,它似乎处于非活动状态(我在store命令的几个地方尝试了使用force和overwrite)。
我也看过这篇文章,但作者是从一个位置加载并存储在另一个位置。如果我使用那篇文章中的内容,转换的结果就是没有数据。删除文件不是一个选项。我正在考虑暂时保存这些文件,但我不知道这是不是最好的选择。
我试图得到你在Hive中使用插入覆盖的行为。

t3psigkw

t3psigkw1#

我不熟悉 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';

相关问题