1

PigLatin に問題がある

引用符で文字列を呼び出すPigコードがあります

data = LOAD '$data' AS (...);
a = some_macro(data,'-9999 AS KEY');

マクロは次のようになります。

DEFINE some_macro(data, string) RETURNS results {
    grp = GROUP $data ALL;
    $result = FOREACH grp {
        //...logic and logics
        GENERATE $string, //...other fields
        ...;
    }
}

文字列「-9999 AS KEY」の場合、Pig 0.10 が機能しないようです。「'-9999' AS KEY」を試してみましたが、再び機能しません。

それで、誰かがそれに対する解決策を持っていますか?柔軟な KEY 名が欲しいだけです。

4

3 に答える 3

0

引用符で囲まれた文字列を渡したい場合は、最初にフレッドが説明したようにスクリプトを変更し、パラメーターを渡すときに引用符に相当する Unicode を使用します。

a = some_macro(data,'\\u0022-9999 AS KEY\\u0022'); // "-9999 AS KEY"
于 2012-12-14T15:15:45.020 に答える
0

わかりました。あきらめます。Pig パーサー エンジンは、マクロ内の単一のクォータまたはマイナス '-' を受け入れることができません。

私にとって1つの解決策があります。ドライバーコードを使用して、ピッグファイルのスタブを置き換えます。

実際、豚はそのようにする必要がありますが、なぜマクロでそうしないのかわかりません。

于 2012-12-17T06:57:56.083 に答える