내 프로젝트는식이 습관에 관한 많은 데이터를 얻고 MapReduce (두 가지 MapReduces 사용 계획)를 사용하여 상위 5 개 식품이 주어진 느낌과 어떤 관련이 있는지 알아 보는 것입니다. 다음은 샘플 입력 파일이다MapReduce에서 전체 파일 읽기
food parsnips 2017/1/24 7:00
food beef 2017/1/24 9:00
food oats 2017/1/24 12:00
feel sleepy 2017/1/24 16:00
food pineapple 2017/1/24 17:00
food squid 2017/1/25 7:00
feel sleepy 2017/1/25 11:00
food blueberries 2017/1/25 12:00
food plums 2017/1/25 14:00
feel headache 2017/1/25 18:00
food broccoli 2017/1/25 19:00
food strawberries 2017/1/26 6:00
feel tired 2017/1/26 6:00
food oats 2017/1/26 7:00
food celery 2017/1/26 8:00
food lobster 2017/1/26 9:00
food wings 2017/1/26 9:00
feel stomachache 2017/1/26 14:00
food fish 2017/1/26 16:00
food rice 2017/1/27 6:00
food barley 2017/1/27 11:00
food wings 2017/1/27 17:00
feel itchy 2017/1/27 18:00
food mustard 2017/1/27 19:00
food icecream 2017/1/28 6:00
feel sleepy 2017/1/28 6:00
food oats 2017/1/28 10:00
feel stomachache 2017/1/28 10:00
food grapes 2017/1/28 13:00
food cheese 2017/1/28 14:00
food bread 2017/1/28 15:00
feel itchy 2017/1/28 17:00
소정의 식품은 식품을 먹은 후 십이시간에 감까지와 관련 될 것이다. 예를 들어, 첫 번째 줄에는 파스 닙이 먹은 후 9 시간 후에 수면 감이 발생하기 때문에 파스 닙은 그와 관련된 느낌으로 "졸린"증상을 나타냅니다. 그 '졸린'이 18:00에 발생했다면 파닉스는 졸음과 관련이 없습니다. 이 파일과 같은 많은 입력 파일이 있습니다. "음식, 느낌"
첫 번째 맵리 듀스는 파일에 읽기 및 키입니다 (키, 값) 쌍을 생성하고 값이 단순히 :
이 프로젝트에 대한 내 계획입니다 "하나." 다른 말로 표현하면 음식이 어떤 느낌과 관련이있을 때만 열쇠가 나오는 쌍을 만듭니다. 그런 다음 감추기는 단어 수처럼 주어진 모든 "음식, 감정"이 모든 입력에 걸쳐 발생하는 모든 시간을 합산합니다.
두 번째 MapReduce는 (음식, 느낌, 합계)를 (키, 값) 쌍으로 취합니다. 그러면 각 감정을 원인이되는 모든 음식과 매핑하여 "감정, 음식", x 번 (핵심 가치)을 얻게됩니다. ": 사건을 X food1 feeling1"
: 그런 다음 다음과 같은 출력 결과, 인과 관계에 대한 출력으로 느낌의 5 대 음식을 감소시킬 것이다 "feeling1 : food2, 사건을 X"
제 문제는 첫 번째 MapReduce 기능을 설정하는 방법을 모르겠다는 것입니다. 필자는 MapReduce에 대한 많은 문헌을 읽었으며 일반적인 MaxTemp 및 WordCount 예제에 익숙해졌지만 문제는 12 시간짜리 창을 사용하는 방법과 입력 파일을 사용하여 "음식"을 만드는 방법을 모르는 것입니다. - 느낌, 1 "키 - 값 쌍. 어떤 제안이 유용 할 것입니다. 필자는지도 함수가 개별 파일의 값이 아닌 전체 파일 텍스트를 가져 오는 것과 관련이 있다는 것을 알고 있습니다.
감사