多个不同的列(猪)

时间:2019-04-11 16:48:38

标签: apache-pig

我有一个航班清单,具有以下属性:

  • day:他们出发的日子

  • 航班号:他们的航班号

  • origin_airport:出发城市的机场
  • 目的地机场:目的地城市机场
  • carrier_code:航空公司的代码(例如,增量:DL)

我正在尝试查找每个承运人运营的航班数。为此,我每天需要查找不同的flight_number,origin_airport,dest_airport和carrier_code,因为其中一个条件是“可以安排一架飞机以相同的航班号从A飞往B,然后从B飞往C在同一天。但是,我们将这两次旅程视为两次单独的飞行。”

这是我没有运行的内容:

 desiredattributes = FOREACH jnd GENERATE day, flight_number, origin_airport_id, dest_airport_id, carrier_code;

 distinctflights = FOREACH (GROUP desiredattributes BY day) 
 {
     a = carriers.(carrier_code, flight_number, origin_airport_id, dest_airport_id);
     b = DISTINCT a;
 };
 DUMP distinctflights;

任何帮助或指导表示赞赏!我是猪的新手

1 个答案:

答案 0 :(得分:0)

您应该列出所需属性中的字段。

desiredattributes = FOREACH jnd GENERATE day, flight_number, origin_airport_id, dest_airport_id, carrier_code;
dayflights = GROUP desiredattributes BY day;
alldayflights = FOREACH dayflights GENERATE FLATTEN(group) as day,desiredattributes.flight_number,desiredattributes.origin_airport_id,desiredattributes.dest_airport_id, desiredattributes.carrier_code;
distinctflights = DISTINCT alldayflights;
DUMP distinctflights;