内の「親」フィールドを参照するのに問題がありますforeach
:
grunt> describe METRICS_SOURCE_WITH_CNT
METRICS_SOURCE_WITH_CNT:
{group: (hostname: chararray,site_guid: chararray,timestamp: long),
JOIN_FIELDS_ONLY: {(timestamp: long, unique_pageviews: long)},cnt: long
cnt
タプルの合計であることに注意してください。
METRICS_SOURCE_TOP3 = foreach METRICS_SOURCE_WITH_CNT {
SORTED = ORDER JOIN_FIELDS_ONLY by unique_pageviews DESC;
TOPK = LIMIT SORTED 10;
REVSORTED = ORDER JOIN_FIELDS_ONLY by unique_pageviews ASC;
BOTTOMK = LIMIT REVSORTED cnt;
generate TOPK, BOTTOMK;
}
しかし、2 番目の を適用するとLIMIT
、Pig はcnt
フィールドが 内REVSORTED
にあると考えているようですが、実際には「親」フィールドです。
Invalid field projection. Projected field [cnt] does not exist in schema: timestamp:long,....
フィールドを番号で参照しようとしました$x
が、うまくいきません。Pig は常に、参照されたフィールドがリレーション内にあると考えますLIMIT
。