2012-06-04 4 views
2

사용자 지정 csv 파일을 입력으로 처리하고 csv 파일을 HDFS에 다시 써야합니다. 실제가 장소를 차지하는지도 축소 수업 내에서 직접이 작업을 수행 할 수 있습니까?hadoop 응용 프로그램에서 CSV 파일 읽기 및 쓰기

내 CSV 파일을 처리하기 위해 opencsv 라이브러리를 사용하고 있습니다. 필자는 inputformat 및 outputformat 플래그를 사용하여 사용자 정의 형식을 처리하는 Java 클래스를 지정하는 자습서를 보았습니다. 누군가 CSV 파일 작업 방법에 대한 조언을 제공해 주시겠습니까?

hadoop이 제공해야하는 것에 충실하고 싶습니다. 그렇지 않으면 입력 및 출력 형식을 직접 구현하면 처리 속도가 느려질 수 있습니다.

+0

참조하는 자습서에 연결할 수 있습니까? –

+0

http://blog.aggregateknowledge.com/2011/08/30/custom-inputoutput-formats-in-hadoop-streaming/ 나는 내가 언급 한 정확한 것을 찾지 못했고, 내 캐시를 삭제했다고 말해야합니다. 브라우저는 정확한 블로그를 다시 찾을 수 없습니다. 그러나 이것과 비슷한 것은 – Bob

답변

3

멀티 라인 CSV가 필요한지 아닌지는 질문입니다.
바닐라 TextInputFormat 및 TextOutputFormat을 사용할 필요가 없으며 매퍼에서 opencsv를 사용하여 행을 구문 분석 할 수 있습니다. 출력을 위해서 TextOutputFormat도 아주 좋다.
다중 행이 필요한 경우 - 논리 레코드를 어셈블하기 위해해야 ​​할 몇 가지 해킹이있다. 자신 만의 입력 형식을 만들거나 매퍼에서 수행 할 수 있습니다.

+0

멀티 라인 CSV로 무엇을 의미합니까? 그것은 field1, field2, field3; 1,2,3; 4,5,6; 등등 ... – Bob

+0

하나의 CSV 파일은 큰 매트릭스와 비슷하며 각 요소는 쉼표 또는 특정 문자로 구분됩니다. 이 속성이 여러 줄로 표시됩니까? – Bob

+1

CSV 형식에서 필드가 qoutation 표시 안에 있으면 필드 내용의 일부로 EOL 기호를 사용할 수 있습니다. 단일 CSV 레코드가 여러 줄에 걸쳐 있으므로 하나의 레코드 = 한 줄이라고 가정 할 수 없습니다. OpenCSV에는 여러 줄 csv를 처리하는 특수 옵션이 있습니다. 평소 CSV에서 –