質問

以下の豚のスクリプトを実行している間、私は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)で操作を実行する場合は、「グループ」ではない「グループ」を使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top