2017-09-06 2 views
1

S3 버킷에 수천 개의 압축 된 CSV 파일이 있습니다. 각각의 크기는 약 30MB (압축 해제 후 약 120-160MB)입니다.이 파일은 spark를 사용하여 처리하려고합니다.파일별로 스파크 파티션

필자의 필자는 각 행에서 간단한 필터 선택 쿼리를 수행하고 있습니다.

파티션을 나누는 동안 파일을 두 개 이상의 부분으로 나눈 다음 각 파티션에 대한 작업을 만듭니다. 각 작업은 125K 레코드를 처리하기 위해 약 1 분이 걸립니다. 나는 많은 작업에 걸쳐 하나의 파일을 분할하는 것을 피하고자한다.

각 작업이 하나의 전체 파일에서 작동하도록 파일 및 파티션 데이터를 가져 오는 방법이 있습니까? 즉, 작업 수 = 입력 파일 수입니다.

답변

0

뿐만 아니라 spark 옵션을 가지고 놀면 s3a 파일 시스템 클라이언트에게 S3에서 파일의 "블록 크기"가 128MB임을 Spark에 알리라고 알릴 수 있습니다. 기본값은 그 불꽃이 wholeTextFiles을 사용하여 두

spark.hadoop.fs.s3a.block.size 134,217,728

의 파일을 분할 할 수 귀하의 "약 30메가바이트"수에 충분히 가까이 32 MB, (이다) 작동은 더 안전합니다

관련 문제