[HADOOP] mapReduce 및 hadoop을 사용하여 특정 값을 포함하는 행 추출
HADOOPmapReduce 및 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.기본적으로 WordCount 예제는 달성하려는 대상과 매우 유사합니다. 각 단어마다 개수를 초기화하는 대신 토큰 화 된 String에 값이 필요한지 여부를 확인하고 컨텍스트에 쓰는 경우에만 조건을 확인해야합니다. Mapper는 CSV의 각 행을 별도로 수신하므로이 방법이 유용합니다.
기본적으로 WordCount 예제는 달성하려는 대상과 매우 유사합니다. 각 단어마다 개수를 초기화하는 대신 토큰 화 된 String에 값이 필요한지 여부를 확인하고 컨텍스트에 쓰는 경우에만 조건을 확인해야합니다. Mapper는 CSV의 각 행을 별도로 수신하므로이 방법이 유용합니다.
이제 감속 기는 이미 키별로 구성된 값 목록을 받게됩니다. Reducer에서는 IntWritable을 출력 값 유형으로 사용하는 대신 NullWritable을 반환 값 유형으로 사용할 수 있으므로 코드는 키만 출력합니다. 또한 Reducer에서 사이클을 필요로하지 않는 이유는 키만 출력하기 때문입니다.
내 대답에는 어떤 코드도 제공하지 않습니다. 아무 것도 배울 수 없기 때문입니다. 추천에서 벗어나십시오.
편집 : 당신이 감속기에 대한 요청으로 당신을 수정 한 이후, 여기 당신이 원하는 것을 얻을 수있는 몇 가지 요령이 있습니다.
원하는 결과를 얻을 수있는 가능성 중 하나는 다음과 같습니다. Mapper에서 선을 분할 (또는 테 키스 화) 한 후 문맥 열 3을 키로, 열 0을 값으로 씁니다. Reducer는 집계가 필요 없기 때문에 Mappers에서 생성 한 키와 값을 쓸 수 있습니다 (예 : Reducer 코드는 한 줄로 끝납니다). 제 이전 대답 중 하나를 확인할 수 있습니다.지도 및 축소 단계에서 수행중인 작업에 대한 설명이 꽤 있습니다.
from https://stackoverflow.com/questions/37004413/extracting-rows-containing-specific-value-using-mapreduce-and-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 테이블을 생성하는 동안 하이브에서 한 번에 2 개의 필드 종결 자 (예 : ','및 '.')를 사용할 수 있습니까? (0) | 2019.07.02 |
---|---|
[HADOOP] Hbase 자동으로 모든 열 / 행 키 증가 (0) | 2019.07.02 |
[HADOOP] Hadoop 디렉토리 / 파일 마지막 수정 시간 (0) | 2019.07.01 |
[HADOOP] 하이브의 파티션 열을 포함하여 다른 테이블에서 임시 테이블 만들기 (0) | 2019.07.01 |
[HADOOP] AWS EMR의 유로 오류 (0) | 2019.07.01 |