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);
>> }
誰かがそれを達成する方法を教えてもらえますか????どうもありがとう。