2016-06-29 4 views
1

키 : 값 행을 가진 큰 데이터 CSV 파일이 있습니다. 어떻게 그것을 병렬로 읽을 수 있습니까? 행에 다른 바이트 크기가 있기 때문에이를 청크로 나눌 수 없습니다. 이 경우 어떻게해야합니까?Java + Akka에서 파일 동시성을 읽는 방법

Java에서 예제를 찾을 수 없습니다.

답변

2

동일한 파일 평행 줄을 읽는 이유는 실제로 파일 읽기 속도를 증가시키지 않기 때문입니다.

  1. 당신은 한 바이트 [] 한 번에 그 파일을로드하는 가장 빠른 방법이고 그 후에 당신이 그것을 나눌 수에 전체 파일을 읽어 : 파일을 읽고 싶다면 당신은 그것을 할 수있는 몇 가지 옵션이 있습니다 새 라인 및 데이터 관리

  2. 스캐너와 nextLine 메서드를 사용하여 파일의 행을 읽습니다. 그렇게 효율적이지는 않으므로 권장하지 않습니다.

  3. 파일을 푸퍼 바이트 배열로 읽습니다. 이는 메모리 사용에 효율적인 솔루션이지만, 1. 옵션은 여전히 ​​최고입니다. 파일 로딩이 상대적으로 느리기 때문에

또한, 바이트 배열에 모든 파일을 읽고 당신이 (예, 단지 하나 더 필요 없음) 스레드를해야한다 (RAM에서 데이터 관리에 비해) 그리고 바이트 []를로드 된 설정으로 변환하는 또 다른 스레드는 파일이 클 경우 시간이 오래 걸릴 수 있기 때문입니다.

관련 문제