猪拉丁REGEX_EXTRACT:

时间:2019-04-01 15:31:23

标签: regex apache-pig extract latin

我正在尝试使用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 :(得分:0)

(?<=\\#).*应该会为您提供所需的东西。 ?<=是正向后后面跟\,用于转义#。最后,*将匹配#

前面的所有内容
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