私は外部テーブルを作成し、豚スクリプトを使用して外部テーブルを読み込みたいと思っていました。私は以下のアプローチに従った:PIGからHIVE外部テーブルを使用してデータを書き込む
Ok。 HDFSディレクトリのどこかにスキーマレイアウトを持つ外部ハイブテーブルを作成します。できれば
このようなテーブルを作成して、そのディレクトリにファイルをロードする必要はありません。
今その先の場所と区切り文字と最終FOREACHのスキーマのレイアウトを確認してくださいあなたは
A = LOAD 'inputfile.txt' USING PigStorage(',') AS(id:int,name:chararray,city:chararray);
B = FILTER A by id > = 678933;
C = FOREACH B GENERATE id,name,city;
STORE C INTO '/user/cloudera/outputfiles/usecase1' USING PigStorage('|');
以下のように、その豚のスクリプト使用の出力を保存するときに我々は、その後、いくつかの入力ディレクトリのデータを読み込み、豚のスクリプトを書きますあなたの文はHive DDLスキーマと一致します。
私の問題は、私は最初のテーブルを作成したとき、それはHDFS内のディレクトリを作成している、と私は、スクリプトを使用してファイルを保存しようとしたとき、それは「フォルダが既に存在する」というエラーがスローされます、です。豚の店は常に特定の名前だけで新しいディレクトリに書き込むように見えますか?
この問題を回避する方法はありますか?
また、毎回特定のdiretory /ファイルに書き込むためにPIGのSTOREコマンドで使用できる他の属性はありますか?
おかげ ラム