비정형 CSV 파일을 처리하는 데 hadoop을 사용하고 싶습니다. 이 파일은 다양한 행 길이의 다른 유형의 여러 데이터 값을 포함한다는 의미에서 구조화되지 않았습니다. 또한이 파일은 수 백 가지이며 파일 크기가 비교적 큽니다 (> 200MB).Hadoop + MapReduce로 비정형 데이터 처리
Book , ISBN , BookName , Authors , Edition
Book , 978-1934356081, Programming Ruby 1.9 , Dave Thomas, 1
Book , 978-0596158101, Programming Python , Mark Lutz , 4
...
BookPrice, ISBN , Store , Price
BookPrice, 978-1934356081, amazon.com , 30.0
BookPrice, 978-1934356081, barnesandnoble.com , 30.67
BookPrice, 978-0596158101, amazon.com , 39.55
BookPrice, 978-0596158101, barnesandnoble.com , 44.66
...
Book , ISBN , BookName , Authors , Edition
Book , 978-1449311520, Hadoop - The Definitive Guide, Tom White , 3
...
파일이 자동으로 생성됩니다, 나는 주어진 구조 여부를 제어 할 수 없습니다 :
각 파일의 구조
은과 같이 설명 될 수있다. 기본적으로 헤더 행과 헤더에 일치하는 값이 포함 된 데이터 행이 있습니다. 행 유형은 첫 번째 쉼표로 구분 된 단어로 식별 할 수 있습니다. 예에서Book
행에는 책 (이름, isbn, 저자, 판)에 대한 메타 데이터가 포함되어 있으며
BookPrice
에는 다양한 소매점/공급 업체를위한 책 가격이 포함되어 있습니다.
Map/Reduce를 사용하여 데이터에 대한 일부 집계 계산을 수행하는 방법을 이해하려고합니다. 데이터가 구조화되어 있으면 각 단계에서 어떤 문자가 추출되는지 이해하기가 더 어려워집니다.
예를 들어, 나는 각 책에 대한 평균, MAX 및 MIN 가격을 계산하고 싶습니다 (결합 할 수 있습니다/ISBN별로 그룹화). 내가 주문한 하나의 타입의 CSV 파일에 데이터를 추출하고 (grep, python, awk 등을 사용하여) 거기에서 일하는 몇 가지 사전 처리를 할 수 있다는 것을 알았지 만 그것은 M/R + Hadoop 사용의 요점을 무너 뜨릴 것이다. , 추가 작업이 많이 필요할 것입니다.
여러 맵 스테이지를 사용하는 것에 대해 생각해 보았습니다.하지만이 모든 것에 상당히 익숙하며 어떻게 시작해야하는지 모르겠습니다.
샘플 파일/쿼리에 대해 M/R 작업 (Java)을 구현하려면 어떻게해야합니까? 감사.
매우 근사한 접근, 감사합니다. 실제 구현 세부 정보/코드를 공유 하시겠습니까? – sa125
난 상관 없어. 나에게 이메일을 보내면 기꺼이 도와 드리겠습니다. –
David 어떻게 파일에서 헤더를 분리합니까? http : //stackoverflow.com/questions/21040166/aggregation-in-mapreduce –