PIG LATIN REGEX_EXTRACT: - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь использовать regex_extract, чтобы получить все после # из твита.Я использую этот код, но я продолжаю получать ничего, без ошибок, просто пустое место, где я должен получить выдержку из твита, что я делаю не так?

grunt> a = load '/user/manuelrivera11828510/lab/pig/full_text.txt' AS (id:chararray, ts:chararray, location:chararray, lat:float, lon:float, 
tweet:chararray);

grunt> b = foreach a generate id, ts, (lat, lon) as location, REGEX_EXTRACT(tweet, '(.*)#(\\s{8})([:| ])(.*)',2) as hash;

Это то, что я получаю (пример):

(USER_8f811b71,2010-03-06T16:12:59,(40.722733,-73.5367),)

Спасибо,

1 Ответ

0 голосов
/ 02 апреля 2019

(?<=\\#).* должен получить то, что вы ищете. ? <= является положительным взглядом, за которым следует \, что означает экранирование #. Наконец. * будет соответствовать всему перед # </p>

a = load '/user/manuelrivera11828510/lab/pig/full_text.txt' AS (id:chararray, ts:chararray, location:chararray, lat:float, lon:float, tweet:chararray);
b = foreach a generate id, ts, (lat, lon) as location, REGEX_EXTRACT(tweet, '(?<=\#).*',1) as hash;`

См. Ниже, регулярное выражение соответствует "geteverything in fron of hash"

enter image description here

...