내 데이터는 비교적 작은 Avro 레코드 형식으로, 여기 엔 나무 마루 파일로되어 있습니다 (평균 < 1MB).여기 엔 나무 마루 파편과 HDFS 파일 크기
지금까지 로컬 파일 시스템을 사용하여 Spark로 몇 가지 테스트를 수행했습니다.
디렉토리 계층 구조를 사용하여 데이터를 분할했습니다.
Avro 레코드에 파티션을 "빌드"하고 더 큰 파일을 축적하는 것이 더 좋을지 궁금합니다 ...하지만 그 파팅 된 파케 파일은 HDFS 파티션 파일에도 "매핑"됩니다.
어떤 접근 방식이 가장 좋을까요? (의견에 따라 명확히)
편집 :
"는 브로 기록에 파티션을 만들"상상 그 내 디렉토리 구조 P1 = /P2 = /file.avro와 브로 그 레코드에는 F1과 F2 필드가 있습니다. 필드 P1, P2, F1 및 F2가 포함 된 Avro 파일 하나에이 모든 것을 저장할 수 있습니다. 즉, Avro 레코드에 모두 존재하므로 디렉토리가있는 파티션 구조가 필요하지 않습니다.
마루 칸 파티션과 HDFS 파티션 : HDFS는 다른 Parquet 파일을 여러 컴퓨터로 분할합니다. ? (즉, 내 질문에 명확히 경우 나도 몰라 - 아니 그게 내가 정말하지 이해 의미하는 경우)
정확히 무엇을 묻는 지 이해할 수 없습니다 ("Avro 레코드에 파티션 만들기"및 "파르 케 파일 분할 HDFS partioned 파일에 매핑 될 것입니다. ") 그러나 나는 대답하려고 노력할 것입니다. 일반적으로 내 expirience에서 큰 파일 (난 보통 파일 당 100M - 1G의 크기를 사용하여) 작업하는 것이 더 좋습니다. 파티셔닝 할 때 소량의 데이터로 폴더를 만들지 않아야합니다. 큰 쪽모퉁 파일을 만들려면 coalesce()를 사용하십시오. 마침내 HDFS 쪽 마루에서 읽을 때 파티션을 입력 파일과 일치시킬 수 있습니다. –
@TalJoffe 답장을 보내 주셔서 감사합니다. 나는 내 질문을 명확히했다. 나는'coalesce()'에 대해 몰랐다. 아마 내가보아야 할 곳이다. –
o.k. 큰. 나는 당신의 편집을 보았습니다. 그래서 나는 당신의 질문에 대답했는지에 대해 알고 싶습니다. –