1

Hbaseテーブルに格納されているデータを含む6つの列を持つHdfsファイルがあります。データは次のようになります-

18.98   2000             1.21   193.46  2.64        58.17
52.49   2000.5   4.32           947.11  2.74        64.45
115.24  2001             16.8   878.58  2.66        94.49
55.55   2001.5   33.03  656.56  2.82        60.76
156.14  2002             35.52  83.75   2.6     59.57
138.77  2002.5   21.51  105.76  2.62        85.89
71.89   2003             27.79  709.01  2.63        85.44
59.84   2003.5   32.1           444.82  2.72        70.8
103.18  2004             4.09   413.15  2.8     54.37

次に、各レコードを次の4つのレコードと一緒に取得し、いくつかの処理を実行する必要があります(たとえば、最初のショットではレコード1〜5を取得し、次のショットでは2〜6を取得する必要があります)。 。これにTOPを使用しようとしていますが、次のエラーが発生します-

2012-05-21 17:04:30,328 [main]エラーorg.apache.pig.tools.grunt.Grunt-エラー1200:Pigスクリプトの解析に失敗しました:無効なスカラー射影:パラメーター:列をリレーションから射影する必要がありますスカラーとして使用するためのログファイルの詳細:/home/mohammad/pig-0.9.2/logs/pig_1337599211281.log

私は次のコマンドを使用しています-

grunt> a = load 'hbase://logdata'
>> using org.apache.pig.backend.hadoop.hbase.HBaseStorage(
>> 'cf:DGR cf:HD cf:POR cf:RES cf:RHOB cf:SON', '-loadKey true') 
>> as (id, DGR, HD, POR, RES, RHOB, SON);
grunt> b = foreach a { c = TOP(5,3,a);
>> generate flatten(c);
>> }

誰かがそれを達成する方法を教えてもらえますか????どうもありがとう。

4

0 に答える 0