我有一个Hdfs文件有6列,其中包含一些存储在Hbase表中的数据。数据看起来像这样 -
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等等on)..我试图使用TOP,但收到以下错误 -
2012-05-21 17:04:30,328 [main] ERROR 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);
>> }
有人能告诉我如何实现这一目标吗?非常感谢。