PIG LATIN REGEX_EXTRACT:

问题描述 投票:0回答:1

我试图使用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),)

谢谢,

regex apache-pig extract latin
1个回答
0
投票

(?<=\\#).*应该能满足您的需求。 ?<=是积极的后视,其次是\,用于转义#.Finally。*将匹配#前面的所有内容

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;`

请参阅下文,正则表达式匹配“在哈希面前获取所有内容”

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.