2013-03-04 2 views
0

자바에서 과제 질문이 있습니다.arraylist를 사용하여 엄청난 양의 데이터를 처리합니다.

텍스트 파일의 크기가 GB입니다. 그것을 읽고 해당 파일에서 각 단어의 발생 횟수를 찾고 [< < 단어 >> - <>]와 같이 표시하십시오.

모든 경우에 동일하게 적용됩니다. 그래서 나는 그 단어를 no로 표시 할 것입니다. 그러나 파일에있는 단어가 유일한 것과 같은 최악의 경우를 고려하십시오. 그래서 나는 모든 단어를 1로 표시해야합니다.

이 거대한 데이터 목록을 처리하는 방법은 무엇입니까? 이 문제에 대한 해결책이 있습니까?

+1

무엇을 시도 했습니까? 코드에 어떤 문제가 있습니까? 그 코드를 게시하십시오. – Dariusz

답변

0

이상적으로는 Java에서 Map-Reduce 프로그램을 작성하는 것이 가장 좋은 방법 일 수 있습니다. 다음은 Map-Reduce 패러다임을 사용하는 단어 수 계산 프로그램의 예입니다. Word Count Example

다른 접근 방법은 재귀 읽기/쓰기 작업을 사용하여 수행 할 수 있습니다. 26 개의지도를 가질 수 있도록지도 (알파벳 당 하나의지도)를 만듭니다. 시작 알파벳에 따라 적절한지도에 단어를 넣으십시오. 특정지도 크기에 도달하면 해당지도에서 모든 단어를 증분 된 숫자와 함께 파일에 포함하여 어떤 단어가 포함되어 있는지 확인합니다. 파일에서 모든 단어 (GB 단위의 크기)를 읽은 다음 디스크에서 파일을 읽어 들이고 단어 수를 계산합니다. 이것은 약간의 입출력을 포함 할 것이지만, 나는 메모리 관련 문제를 야기하지 않을 것이라고 생각한다.

관련 문제