복붙노트

[HADOOP] mapReduce 및 hadoop을 사용하여 특정 값을 포함하는 행 추출

HADOOP

mapReduce 및 hadoop을 사용하여 특정 값을 포함하는 행 추출

지도 축소 기능을 처음 사용했습니다. 4 개의 열 데이터가 포함 된 csv 파일이 있다고 가정합니다.

예 :

101,87,65,67  
102,43,45,40  
103,23,56,34  
104,65,55,40  
105,87,96,40  

자, 추출 말을하고 싶다.

40 102  
40 104  
40 105  

그 열은 네 번째 칼럼에서 40을 포함하기 때문입니다.

지도를 쓰는 방법을 줄이기 위해?

해결법

  1. ==============================

    1.기본적으로 WordCount 예제는 달성하려는 대상과 매우 유사합니다. 각 단어마다 개수를 초기화하는 대신 토큰 화 된 String에 값이 필요한지 여부를 확인하고 컨텍스트에 쓰는 경우에만 조건을 확인해야합니다. Mapper는 CSV의 각 행을 별도로 수신하므로이 방법이 유용합니다.

    기본적으로 WordCount 예제는 달성하려는 대상과 매우 유사합니다. 각 단어마다 개수를 초기화하는 대신 토큰 화 된 String에 값이 필요한지 여부를 확인하고 컨텍스트에 쓰는 경우에만 조건을 확인해야합니다. Mapper는 CSV의 각 행을 별도로 수신하므로이 방법이 유용합니다.

    이제 감속 기는 이미 키별로 구성된 값 목록을 받게됩니다. Reducer에서는 IntWritable을 출력 값 유형으로 사용하는 대신 NullWritable을 반환 값 유형으로 사용할 수 있으므로 코드는 키만 출력합니다. 또한 Reducer에서 사이클을 필요로하지 않는 이유는 키만 출력하기 때문입니다.

    내 대답에는 어떤 코드도 제공하지 않습니다. 아무 것도 배울 수 없기 때문입니다. 추천에서 벗어나십시오.

    편집 : 당신이 감속기에 대한 요청으로 당신을 수정 한 이후, 여기 당신이 원하는 것을 얻을 수있는 몇 가지 요령이 있습니다.

    원하는 결과를 얻을 수있는 가능성 중 하나는 다음과 같습니다. Mapper에서 선을 분할 (또는 테 키스 화) 한 후 문맥 열 3을 키로, 열 0을 값으로 씁니다. Reducer는 집계가 필요 없기 때문에 Mappers에서 생성 한 키와 값을 쓸 수 있습니다 (예 : Reducer 코드는 한 줄로 끝납니다). 제 이전 대답 중 하나를 확인할 수 있습니다.지도 및 축소 단계에서 수행중인 작업에 대한 설명이 꽤 있습니다.

  2. from https://stackoverflow.com/questions/37004413/extracting-rows-containing-specific-value-using-mapreduce-and-hadoop by cc-by-sa and MIT license