私はPigとHadoopの世界で初めてです。私が持っている問題はシンプルかもしれませんが、私は進めることができません。empタイミングのMin、Maxを計算するためのPigスクリプト
私は基本的に1日のデータでスワイプする以下のデータを持っています。 PIGを使用して、ある日の従業員が過ごした合計時間、つまり最初の時間内(オフィスに着く時間)と最後の外出時間(最後の1日のスワイプ)の差を計算する必要があります。
EmpID In_Time Out_Time
1 9:00 10:00
2 8:00 11:00
3 10:00 12:00
1 11:00 13:00
1 14:00 18:00
2 12:00 18:00
3 13:00 18:00
私は以下のスクリプトを書きましたが、正しい結果が得られないようです。
grunt> emprec = load '/emptime/emptime' using PigStorage() as (empid:int,in:chararray,out:chararray);
grunt> aggdata = group emprec by empid;
grunt> emptime = foreach aggdata generate (emprec.empid,MIN(emprec.in),MAX(emprec.out));
私は、スクリプトを記述して正しい結果を得られないようです。私は必要
結果は
中間結果である(私の理解のために)必要な
EmpID In_Time Out_Time
1 9:00 18:00
2 8:00 18:00
3 10:00 18:00
最終出力は、私が最後に書かれているOut_timeまで-のIN_timeの違い
EmpID Total_Time
1 9:00
2 10:00
3 8:00
です私は2を減算し、合計時間をオフィスで過ごすことができるように最小と最大時間を得るためにライン
時刻をIntなどの形式にしたい場合は、一例に過ぎないようにしてください。 chararray
データ型にMAX
、MIN
を使用したアドバンス
よろしく、 チェタン