[HADOOP] 돼지의 정규 표현식
HADOOP돼지의 정규 표현식
아파치 돼지와 텍스트 사용하기
hahahah. my brother just didnt do anything wrong. He cheated on a test? no way!
나는 "내 동생이 방금 잘못한 것을하지 않았다"와 일치 시키려고 노력하고있다.
이상적으로는 "내 동생"으로 시작하고 문장 부호 (EOL)의 끝으로 끝나기를 원할 것입니다.
돼지 문서를보고, java.util.regex.Pattern에 대한 링크를 따라 가면, 나는 사용할 수 있어야한다고 생각한다.
extrctd = FOREACH fltr GENERATE FLATTEN(EXTRACT(txt,'(my brother just .*\\p{Punct})')) as (txt:chararray);
그러나 그것은 그 라인의 끝까지 일치하는 것처럼 보인다. 이 경기를 수행하기위한 제안 사항이 있습니까? 나는 내 머리카락을 꺼낼 준비가되어 있고, 내 머리카락을 꺼내서 파이썬 스트리밍으로 전환해야한다.
해결법
-
==============================
1.기본적으로 한정 기호는 욕심이 있습니다. 이는 가능한 한 많이 일치한다는 것을 의미합니다. 이 경우 첫 번째 구두점까지만 일치 시키려고합니다. 다른 말로하면 가능한 조금 일치시키고 싶습니다.
기본적으로 한정 기호는 욕심이 있습니다. 이는 가능한 한 많이 일치한다는 것을 의미합니다. 이 경우 첫 번째 구두점까지만 일치 시키려고합니다. 다른 말로하면 가능한 조금 일치시키고 싶습니다.
그래서 문제를 해결하려면 quanitifer에 욕심이 없도록 a를 추가해야합니다. 그 직후 :
my brother just .*?\\p{Punct} ^
? 여기서 '0 또는 1과 일치'를 의미하는 한정 기호로 사용하는 것과 다릅니다.
-
==============================
2.시도해 봤어 :. * (내 동생 그냥. * \\ p {Punct})
시도해 봤어 :. * (내 동생 그냥. * \\ p {Punct})
귀하의 표현이 내 동생이 문자열의 시작 부분이되기를 원하는 것처럼 보입니다. 그러나 귀하의 예에서는 문자열의 중간에 있으므로 동생 앞에서 모든 것을 설명해야합니다.
-
==============================
3.일치하는. *은 ... 모든 것 ... [az] *를 문자와 만 일치 시키려고 시도하십시오.
일치하는. *은 ... 모든 것 ... [az] *를 문자와 만 일치 시키려고 시도하십시오.
from https://stackoverflow.com/questions/3285082/regexp-matching-in-pig by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 오류 : org.apache.hadoop.hbase.MasterNotRunningException : null + hbase + hadoop (0) | 2019.08.04 |
---|---|
[HADOOP] Hdfs 파일에서 복제 요소 정보를 어떻게 검색합니까? (0) | 2019.08.04 |
[HADOOP] "클라이언트"는 Hadoop / HDFS의 의미가 정확히 무엇입니까? (0) | 2019.08.04 |
[HADOOP] HDFS 형식 로컬 디스크를 s3 오류로 바꾸기 (org.apache.hadoop.service.AbstractService) (0) | 2019.08.04 |
[HADOOP] Java를 통한 Apache 드릴 연결 (0) | 2019.08.04 |