regex\u extract\u在apache pig中都没有返回正确的结果

sy5wg1nm  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(327)

我想把非结构化数据转换成结构化形式。数据的形式如下-(显示1行数据)

Agra - Ahmedabad###     Sat, 24 Jan###  http://www.cleartrip.com/m/flights/results?from=AGR&to=AMD&depart_date=24/01/2015&adults=1&childs=0&infants=0&class=Economy&airline=&carrier=&intl=n&page=loaded        Air India###    15:30 -
14:35###        47h 5m, 3 stops , AI 406###     Rs. 30,336###

我想用ApachePig提取以下格式的数据

(Agra - Ahmedabad,Sat, 24 Jan,http://www.cleartrip.com/m/flights/results?from=AGR&to=AMD&depart_date=24/01/2015&adults=1&childs=0&infants=0&class=Economy&airline=&carrier=&intl=n&page=loaded,Air India,15:30 - 14:35,47h 5m, 3 , AI 406 , 30,336)

我在apache pig中使用以下行:

A = LOAD '/prodqueue_cleartrip_23rdJan15.txt' using PigStorage as (value: chararray);

B = foreach A generate REGEX_EXTRACT_ALL('value', '([^#]+)#+\\s+([^#]+)#+\\s+([^\\s]+)\\s+([^#]+)#+\\s+([0-9]{1,2}:[0-9]{1,2}\\s-\\n[0-9]{1,2}:[0-9]{1,2})#+\\s+([^,]+),\\s([0-9]+)\\sstops\\s,\\s([^#]+)#+\\s+Rs.\\s([^#]+)#+
');

C = LIMIT B 5;

我得到的结果是:

()
()
()
()
()

怎么了?

ql3eal8s

ql3eal8s1#

这可能只是你的问题的一个拼写错误,但是

REGEX_EXTRACT_ALL('value', '([^#]+)#+\\s...

只需搜索一个文本“值”。您可能希望去掉单个引号,使其与字段值匹配。

REGEX_EXTRACT_ALL(value, '([^#]+)#+\\s...

相关问题