私はいつかPIGを使用しており、ファイルのロード中に最初の行を考慮しない方法を知りたいと思っていました. ヘッダーを持つファイルがあります。したがって、最初の行を無視して次の行に移動し、日付列とすべての処理を行う必要があります。これについてどうすればいいですか?
ありがとう
私はいつかPIGを使用しており、ファイルのロード中に最初の行を考慮しない方法を知りたいと思っていました. ヘッダーを持つファイルがあります。したがって、最初の行を無視して次の行に移動し、日付列とすべての処理を行う必要があります。これについてどうすればいいですか?
ありがとう
ブタのバージョン 0.11 をお持ちの場合は、これを試すことができます。
input_file = load 'input' USING PigStorage(',') as (row1:chararay, row2:chararray);
ranked = rank input_file;
NoHeader = Filter ranked by (rank_input_file > 1);
New_input_file = foreach NoHeader generate row1, row2;
New_input_file には、ヘッダーのないデータが含まれている必要があります。ランク演算子は pig 0.11 の新機能であるため、以前のバージョンでは機能しないことに注意してください。
編集:このソリューションは単一のファイルでのみ機能することに注意してください。代わりにディレクトリをロードしている場合は、代わりに何か他のものを試してください。
1つのファイルをロードするだけであれば、指定されたソリューションはうまく機能します。ただし、ディレクトリ内のすべてのファイルをロードする場合 (入力がディレクトリ パスであることを確認するだけでも可能です)、指定されたソリューションは最初のファイルの先頭のみを切り捨てます。
各ファイルのヘッダーを削除するには、おそらくCSVExcelStorageを使用することをお勧めします
my_input = load 'inputfileordir' USING CSVExcelStorage(',', 'default', 'NOCHANGE', 'SKIP_INPUT_HEADER')