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。ただし、 HDFSLOADSTOREの間を行き来する場合、Pig は、スクリプト内での削除と移動を可能にするシェル コマンドを提供します。

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 に答える