メソッドとPigを使用したいREPLACE
のSUBSTRING
ですINDEXOF
が、うまく使用できません。
最初のケース:
REPLACE
でREGEX_EXTRACT_ALL
:data_split = FOREACH data GENERATE FLATTEN(REGEX_EXTRACT_ALL(line, MY_REGULAR_EXPRESSION)) AS ( timestamp: chararray, url: chararray, REPLACE(url , '.*?://', '') AS clean_url: chararray);
http://
REPLACEを使用して先頭のURLを削除したいと思います。この場合、私は次のようになります。
Error during parsing. Encountered " "(" "( ""
2番目のケース:出力の再利用:
ws = FOREACH data_split { clean_url = REPLACE(url , '.*?://', ''); url_index = INDEXOF(clean_url, '/'); web_server = SUBSTRING(clean_url, 0, url_index); GENERATE web_server, timestamp, ip ;
どちらの場合も機能しません。clean_url
前回の呼び出しから再利用しようとするとREPLACE
、
Attempt to give operator of type
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc
multiple outputs. This operator does not support multiple outputs.
ありがとう