Как извлечь строку из двойных квадратных скобок в Pig - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь извлечь строку из моих входных данных, такую ​​как: I love [[cricket]]. Let's play it at [[16:00]].

Я хочу, чтобы вывод был просто: cricket, 16:00

Я пробовал несколько регулярных выражений, например:

'(?<=\[\[).*?(?=\]\])',  
'\\[\\[(.*?)\\]\\]',  
'\[\[(.*?)\]\]',  
'[[([^>]*?)]]'.

grunt> Register '/usr/local/pig/lib/piggybank.jar';
grunt> Define Xpath org.apache.pig.piggybank.evaluation.xml.XPath();
grunt> page = Load 'hdfs://master:9000/IP/Wikipedia-20181215070630.xml'            using org.apache.pig.piggybank.storage.XMLLoader('page') as (x : chararray);
link = Foreach page Generate Flatten(REGEX_EXTRACT_ALL(x, '(?<=\[\[).*?(?=\]\])'));

Всякий раз, когда мое регулярное выражение имеет '[', свинья выбрасывает ниже сообщение об ошибке:

<line 1, column 64>  Unexpected character '['
2018-12-22 04:41:24,535 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 1, column 64>  Unexpected character '['.

И когда я пробовал другое вышеупомянутое регулярное выражение, я получаю пустой вывод.

...