2016-09-12 9 views
0

を失敗した(遅延が負かpositve番号を指定できます)豚遅延の平均を計算すると、私は飛行機のDESTおよび遅延を持つ、飛行機データ用のファイルを持っている

A = load ‘flightdelays’ using Pigstorage(‘,’); 
B = foreach a generate $14 as delay:int, $17 as dest:chararray; 
C = group b all; -- this is failing for cast error, also get an error failed to read data from input file.. 
D =foreach c generate b.dest, AVG(b.delay); 

私はこれを実行すると、私はソースから読み取る0レコードを取得しますファイルと地図作成ジョブが失敗しました..

なぜAVGを計算できないのですか?

答えて

0

ファイルの拡張子/パスを確認してください。ファイルがカンマ区切りですか?また、あなたのスクリプトには多くのケースの問題があります。

  • あなたのloadステートメントでは、PigStorageは小さいです。

    A = PigStorage( '、');を使用して 'flightdelays'を読み込みます。

  • B = foreachは$ 14を遅延として生成します:int、$ 17 as dest:chararray;

a、b、cという関係はありません。リレーションAなどにデータをロードしています。あなたが指定する必要がありFOREACHで

+0

入力ファイルが「」正しくそのの関係に保存されたばかり、私はファイルをロードすると、HDFSディレクトリ にロードされた.csvファイルdestがグループである必要があります関係Bにおいて 、iは2列のデータをフィルタリングすることができる午前 ように見える (DEN、10)(SFO、-5) (SFO、10) (SFO、2) (-10 SFO) ( DEN、11) リレーションCでは、それをdestでグループ化しようとすると、コマンドは正常に実行されますが、Cをダンプすると、関連するデータは見つかりませんが、グループはすべて実行できます。 – id007

0

第一の事A、任意の属性上で関係やグループで集計関数を計算しながら、異なる(豚の関係名に大文字と小文字が区別されます)と第二のもの扱わ..

属性および集約関数をグループ化 ..あなたがすべてでグループを使用するこのシナリオでは

はあなたが...

集約関数と一緒にb.dest使用することはできません

あなたが先賢明AVGを(必要な場合)の遅延後、あなたは...

+0

Ankur、 a = load '/ user/horton/flightde PigStorage( '、')を使用してレイアウトします。 b = foreachは$ 14をarrdelay:int、$ 17をdest:chararrayとして生成します。 c =グループb by dest; d = foreach cはb.dest、AVG(b.arrdelay)を生成します。 e =「/ user/horton/average」にdを格納する - 入力ファイルが.csvファイルで、データをd -itsにロードしてもエラーにはならないが、dをダンプするとdの関係はないと言われる – id007

+0

あなたは$ 14のデータがどのように見えるかサンプルデータを共有できますか? –

関連する問題