2017-12-26 22 views
0

rdd.saveAsTextFile("s3n://bucket-name/path)에 $ 폴더 $ 폴더 이름으로 빈 파일을 만드는 등 - [folder-name]_$folder$ 은 하둡 파일 시스템과 같은 S3 파일 시스템을 해내 hadoop-aws jar (of org.apache.hadoop)에 의해 사용이 빈 파일처럼 보인다.스파크 saveAsTextFile은 빈 파일을 작성 - <directory>이 _ S3

그러나 내 응용 프로그램은 수천 개의 파일을 S3에 씁니다. saveAsTextFile은 주어진 경로에서 (rdd에서) 데이터를 쓰는 폴더를 생성하므로 내 응용 프로그램은 수천 개의 빈 파일 ([directory-name]_$folder$)을 생성합니다.

rdd.saveAsTextFile이 빈 파일을 쓰지 못하게 할 방법이 있습니까?

답변

0

s3n을 사용하여 중지하고 s3a로 전환하십시오. 더 빠르고 실제로 지원됩니다. 커다란 Parquet/ORC 파일을 읽는 중 심각한 성능 문제와 함께이 문제를 해결할 것입니다.

또한 앱이 S3에 수천 개의 작은 파일을 생성하는 경우 향후 성능 문제가 발생합니다. S3의 파일을 나열하고 열기는 느립니다. 소스 데이터를 더 큰 컬럼 형식의 파일로 결합하려고 시도하십시오. & 프레임 워크가 원하는 비트를 읽는 데 필요한 모든 SELECT 메커니즘을 사용하십시오.

+0

's3a'로 시도했지만' _ $ folder $' 파일. – barath

+0

아니요. 나는 앞에서 IDE에있는'S3AFileSystem'에 대한 소스를 재검토했다. '$ folder $'접미사는 디렉토리 검사에서 찾았지만 생성 된 적이 없습니다. 그들이 나타나면 s3a가 아닌 다른 일이 그것을합니다. –

+0

사용중인 파일 시스템 구현을 나에게 알려 주실 수 있습니까? 즉'fs.s3a.impl'의 값은'org.apache.hadoop.fs.s3native.NativeS3FileSystem'을 사용하고 있습니다. – barath