2016-09-28 3 views
1

I 돼지의 행 수를 계산하는 방법을 보여주는 This Stack Over Flow question이 나옵니다.돼지의 행 수를 계산하는 더 빠른 방법

내가 발견 한 문제는 필터링 된 변수의 행을 계산하기 전에 일부 정규식 필터 일치 및 다른 작업을 수행 할 때이 작업은 엄청나게 오래 걸린다는 점입니다. 여기

빠른 결과를 얻을 수있는 방법이있다,

all_data = load '/logs/chat1.log' USING TextLoader() as line:chararray; 
match_filter_1 = filter all_data by (line matches 'some regex'); 
inputGroup = GROUP match_filter_1 ALL; 
totalLine = foreach inputGroup generate COUNT (match_filter_1); 
dump totalLine; 

그래서 내 코드?

+0

데이터 –

+0

의 크기 무엇인지 지금은 2기가바이트 같은 데모 데이터 크기입니다. –

답변

0

는 작업의 병렬 처리를 높이기 위해 PARALLEL 절을 사용

평행 돼지에 의해 생성 된 맵리 듀스 작업의 감소 작업의 수를 설정합니다. 기본값은 1 (하나는 작업 감축)입니다. PARALLEL은 축소 작업 수에만 영향을줍니다. 맵 병렬 처리는 입력 파일, 각 HDFS 블록에 대한 하나의 맵에 의해 결정됩니다. PARALLEL을 지정하지 않으면 동일한 맵 병렬 처리가 있지만 하나의 작업 만 축소됩니다. 이 도움이

A = LOAD 'myfile' AS (t, u, v); 
B = GROUP A BY t PARALLEL 18; 

희망! ...

+0

현재 내 돼지 작업이 연기되었습니다. 그래서 나는 지금 이것을 시도 할 수 없으므로 받아들이거나 거부해야합니다. 그러나 일단 내가이 일을 재개하면 나는 분명히 이것을 시도 할 것이고 긍정적 인 검토를하기를 희망한다. –

관련 문제