ブタスクリプトコードエラー?
-
16-10-2019 - |
質問
以下の豚のスクリプトを実行している間、私はLine4でエラーが発生しています。それがグループの場合、エラーが発生しています。 Line4で「グループ」から「グループ」に変更すると、スクリプトが実行されています。
グループとグループの違いは何ですか?
LINES = LOAD '/user/cloudera/datapeople.csv' USING PigStorage(',') AS ( firstname:chararray, lastname:chararray, address:chararray, city:chararray, state:chararray, zip:chararray );
WORDS = FOREACH LINES GENERATE FLATTEN(TOKENIZE(zip)) AS ZIPS;
WORDSGROUPED = GROUP WORDS BY ZIPS;
WORDBYCOUNT = FOREACH WORDSGROUPED GENERATE GROUP AS ZIPS, COUNT(WORDS);
WORDSSORT = ORDER WORDBYCOUNT BY $1 DESC;
DUMP WORDSSORT;
解決
foreachの厳密に小文字の「グループ」は、あなたがループ/グループ化しているものです。
http://squarecog.wordpress.com/2010/05/11/group-operator-in-apache-pig/ 言う:
関係をグループ化すると、結果は2つの列の新しい関係になります。「グループ」と元の関係の名前です。
列名はケースに敏感なので、foreachで低ケース「グループ」を使用する必要があります。
「グループ」は、Grouping Operatorです。混ぜることはできません。だからそれをしないでください。
他のヒント
通常、グループ/cogroupは、いくつかのキーによる関係をグループ化するために使用されます。グループをグループ化した後、グループ化された関係を説明します。 GRP:{グループ:Chararray、A:{(name:Chararray、Session:Chararray、GPA:Float)}}。
上記の結果では、「グループ」を見つけることができます。
グループ化された関係(GRP)で操作を実行する場合は、「グループ」ではない「グループ」を使用する必要があります。
所属していません datascience.stackexchange