나는 최근에 방문한 URL 목록을 생성하기 위해 PIG를 사용하고 있습니다. 각 URL에는 방문한 제품 페이지를 나타내는 일련의 숫자가 있습니다. 나는함수를 사용하여 길이가 6-8 인 숫자 문자열을 추출하려고합니다. 숫자 자열은 jobs2/view/
바로 뒤에 있으며 보통은 +&cd
으로 끝나지만 때로는 )
으로 끝날 수도 있습니다.정규 표현식을 사용하여 URL에서 숫자의 문자열을 추출합니다.
(http://a.com/search?q=cache:QD7vZRHkPQoJ:ca.xyz.com/jobs2/view/17069404+&cd=1&hl=en&ct=clnk&gl=ca) (http://a.com/search?q=cache:G9323j2oNbAJ:ca.xyz.com/jobs2/view/5977065+&cd=1&hl=en&ct=clnk&gl=ca) (http://a.com/search?q=cache:aNspmG11qAJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=clnk&gl=hk) (http://a.com/search?q=cache:aNspmG11AJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=clnk&gl=hk) (http://a.com/search?q=cache:aNspmG11qAJ:hk.xyz.com/jobs2/view/16988928+&cd=2&hl=zh-TW&ct=cl K & GL = 홍콩) 여기
는 내가 현재 정규식 : 여기 몇 가지 예를 들어 URL이 있습니다 다음을 사용 :J = FOREACH jpage GENERATE FLATTEN(REGEX_EXTRACT_ALL(TEXTCOLUMN, '\/view\/(\d+)\+\&')) as (output:chararray)
예컨대 THER 형태 :
'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
, 'view.([0-9]+)'
, 'view\/([\d]+)\+'
,
'[0-9][0-9][0-9]+'
및 '[0-9][0-9][0-9]*'
; 어느 것도 작동하지 않습니다.
아무도 여기에서 도움을 줄 수 있습니까? 아니면 다른 방법으로 갈 수 있습니까?
많은 감사, MM
ERROR 1,200 <1 행 7, column 68> 예기치 않은 문자 'D' – user3521607