アマゾンEMR-4.5、Hadoopの2.7.2、豚0.14プロジェクト '-tagFile' オプションを使用して、ファイル名フィールド、LOAD、豚0.14
私は、ファイル名フィールドを投写したいと-tagFileオプションを使用してロードした後、選択されたフィールドを新しいリレーションに変換します。結果は意味をなさないと思われる。例:
タグファイル-test.txtの(タブ区切り)
AAA 123 2016
BBB 456 2016
CCC 789 2016
は
test = LOAD 'tagfile-test.txt' USING PigStorage('\t','-tagFile') AS (f0, f1, f2, f3);
DUMP test;
(tagfile-test.txt,AAA,123,2016)
(tagfile-test.txt,BBB,456,2016)
(tagfile-test.txt,CCC,789,2016)
が正しいロードダンプ - F0、F1、F2
test = LOAD 'tagfile-test.txt' USING PigStorage('\t','-tagFile') AS (f0, f1, f2, f3);
project = FOREACH test GENERATE f0, f1, f2;
DUMP project;
(tagfile-test.txt,AAA,123)
(tagfile-test.txt,BBB,456)
(tagfile-test.txt,CCC,789)
が間違っを生成します - 生成f0、f1、f3(上記と同じ結果)
test = LOAD 'tagfile-test.txt' USING PigStorage('\t','-tagFile') AS (f0, f1, f2, f3);
project = FOREACH test GENERATE f0, f1, f3;
DUMP project;
(tagfile-test.txt,AAA,123)
(tagfile-test.txt,BBB,456)
(tagfile-test.txt,CCC,789)
正しくない - 豚が正しくフィールド名を特定されていないようだF0、F2、F3(確認)
test = LOAD 'tagfile-test.txt' USING PigStorage('\t','-tagFile') AS (f0, f1, f2, f3);
project = FOREACH test GENERATE f0, f2, f3;
DUMP project;
(tagfile-test.txt,AAA,2016)
(tagfile-test.txt,BBB,2016)
(tagfile-test.txt,CCC,2016)
を生成します。私はフィールドの位置($ 0、$ 1、$ 2、$ 3)を同じ結果で使用しようとしました。
謝罪、で説明されています。私は質問の入力ファイルを明確にするために書式を変更しました。私は、同じ問題をデータ型を追加しようとしました。データ型が正しくないため、これらのデータ型では空白(最後の例ではf2の場合)が返されます。 – chillvibes