0

プロファイルに少なくとも 2 つの国があるか、米国出身のユーザーでユーザーをフィルター処理しようとしています。Pig でこれを試しました

    B = group A by userid;
    C = foreach B  {
                count = $1.country;
                count2 = distinct count;
                GENERATE (((SIZE(count2) > 1 OR count2.$0 != 'USA') ? group : null)));
        }

しかし、このエラーが発生しました

incompatible types in NotEqual Operator left hand side:bag :tuple(country:chararray)  right hand side:chararray

他の組み合わせを試してみましたが、うまくいきませんでした。

4

1 に答える 1

2

これを試して:

C =
    foreach (group A by userid)
    generate
        group as userid,
        COUNT(A) AS count,
        FLATTEN(A) as country;
D = filter C by count > 1 OR country == 'US';

C は、スキーマ {userid:chararray, count:long, country:chararray} との関係です。count は、userid が関連付けられている国の数です。D は、基準に従ってフィルタリングされます。

于 2012-11-20T18:17:45.870 に答える