私はブタのリレーションにフィルタをかけようとしていますが、最初のフィールド文字列に3番目のフィールドがあるすべてのレコードが必要です。豚のフィルタリング
私が試した:そこには構文エラーがありませんが、私は、フィルタリングのための任意の出力を取得していない午前
Filtered= FILTER SRC BY $0 matches 'CONCAT(".*",$2,".")';
DUMP Filtered;
(私の元関係がSRCであると仮定) 。
私はブタのリレーションにフィルタをかけようとしていますが、最初のフィールド文字列に3番目のフィールドがあるすべてのレコードが必要です。豚のフィルタリング
私が試した:そこには構文エラーがありませんが、私は、フィルタリングのための任意の出力を取得していない午前
Filtered= FILTER SRC BY $0 matches 'CONCAT(".*",$2,".")';
DUMP Filtered;
(私の元関係がSRCであると仮定) 。
私はCONCATはあなたが期待しているものに解決されるとは思わない、もっとので、試合はおそらく、あなたがどんな結果
できます取得されていません理由は全体unevalutated文字列CONCAT(".*",$2,".")
を、一致しようとしています
TMP = FOREACH SRC GENERATE $0, CONCAT(".*",$2,".");
Filtered = FILTER TMP BY $0 matches $1;
DUMP Filtered;
またはそのような何か(完全にテストされていない)
ブタのCONCAT
は、引数を2つだけ取る。私はそれが実行時に文句されていない理由はわからないんだけど、あなたは、文字列あなたを得るために
CONCAT(".*", CONCAT($2, "."))
のように、2つのCONCAT
文の文字列にするつもりだhttp://pig.apache.org/docs/r0.10.0/func.html#concat
でマニュアルを参照してください欲しいです。
私はあなただけA. Leistraで述べたように、いくつかの構文エラー
3番目のフィールドは、結果がfiltereになることを最初のフィールドが含まれている場合
Filtered= FILTER SRC BY $0 matches '(.*)$2(.*)';
DUMP Filtered;
、これを試してみてくださいd。 これはRegexを使って行います。
これは動作しません。 –