[HADOOP] Hadoop : 한 쌍의 값을 '키'로 사용할 수 있습니까?
HADOOPHadoop : 한 쌍의 값을 '키'로 사용할 수 있습니까?
큰 범죄 통계 데이터 세트를 분석하려고하는데이 파일은 약 2GB의 CSV 형식입니다. 약 20 개의 열이 있지만 그 중 일부에만 관심이 있습니다 (Crime_Type 및 Crime_in_Year). 예를 들어, 범죄 유형은 "강도질"로, 2001 년부터 2013 년까지 매년 발생합니다. 나는 매년 강도 사건 발생 건수를 계산하는 결과를 원합니다.
그래서 열쇠를 가질 생각이고, 값은 2003 년에 그 값의 합계가 될 것입니다. 한 쌍의 값을 hadoop / mapreduce의 키로 사용할 수 있습니까?
해결법
-
==============================
1.키는 Writable을 구현하는 한 무엇이든 될 수 있습니다. 여기에 표시된대로 사용자 정의 키를 매우 쉽게 작성할 수 있습니다.
키는 Writable을 구현하는 한 무엇이든 될 수 있습니다. 여기에 표시된대로 사용자 정의 키를 매우 쉽게 작성할 수 있습니다.
문서에서 빌리면 구현이
public class CrimeWritable implements Writable { private int year; private String type; public void write(DataOutput out) throws IOException { out.writeInt(year); out.writeBytes(type); } public void readFields(DataInput in) throws IOException { year = in.readInt(); type = in.readBytes(); } public static CrimeWritable read(DataInput in) throws IOException { CrimeWritable w = new CrimeWritable(); w.readFields(in); return w; } }
관련 메모에서 Cascading 또는 Apache Spark와 같은 map-reduce보다 높은 수준의 추상화를 사용하는 것이 좋습니다.
-
==============================
2.한 가지 가능한 조합은 다음과 같습니다. map () 함수에서 다음과 같이 키 값 쌍을 생성합니다. (Crime_Year CrimeType, value) 키를 "Crime_Year Burglary"로 설정하고 값을 정수 값으로 지정하십시오. 이것은 실제로 주어진 데이터 세트에서 범죄 유형이 "강도질"인지 확인한 다음 Crime_Year를 그것과 연결하고이 String을 키로 설정하고 값을 정수 1로 설정한다는 것을 의미합니다.
한 가지 가능한 조합은 다음과 같습니다. map () 함수에서 다음과 같이 키 값 쌍을 생성합니다. (Crime_Year CrimeType, value) 키를 "Crime_Year Burglary"로 설정하고 값을 정수 값으로 지정하십시오. 이것은 실제로 주어진 데이터 세트에서 범죄 유형이 "강도질"인지 확인한 다음 Crime_Year를 그것과 연결하고이 String을 키로 설정하고 값을 정수 1로 설정한다는 것을 의미합니다.
reduce ()에서 모든 값을 동일한 키로 요약합니다.
예: map () 출력 : <2001 년 강도, 1> <2001 년 강도, 1> <2002 년 강도질, 1> <2003 년 강도질, 1>
reduce () 출력 (동일한 키의 값을 합산) :
<2001 년 강도질, 2> <2002 년 강도질, 1> <2003 년 강도질, 1>
결국 당신은 총 아니오를 얻을 것입니다. 범죄의 해마다.
from https://stackoverflow.com/questions/19442057/hadoop-can-you-use-a-pair-of-values-as-key by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] MapReduce에게 사용할 매퍼의 수를 알려주는 방법은 무엇입니까? (0) | 2019.07.31 |
---|---|
[HADOOP] sqloop을 사용하여 하이브에 외부 테이블을 만드는 법. 제안 필요 (0) | 2019.07.31 |
[HADOOP] 잭슨 문제가있는 Hadoop Java MapReduce 구문 분석 JSON (0) | 2019.07.31 |
[HADOOP] SparkSQL + Hive + Hbase + HbaseIntegration이 작동하지 않습니다. (0) | 2019.07.31 |
[HADOOP] HDFS에서 파일을 업데이트하는 방법 (0) | 2019.07.31 |