나는 the one mentioned here과 비슷한 상황에 있습니다. 질문에 만족스럽게 대답하지 못했습니다. 게다가, 나는 처리 할 데이터가 적다 (하루 1G 정도).디스크에 저장된 Spark/Parquet 데이터에 데이터 추가
내 상황 : 일정량의 데이터 (~ 500G)가 이미 마루 (동의 한 "저장 형식")로 사용할 수 있으며 정기적 인 증분 업데이트가 제공됩니다. 나중에 ETL 부분과 분석 부분을 처리 할 수 있기를 원합니다. 모든 데이터 때까지 주위에 DIFF 데이터 세트을 유지
- 저장 추가 모드과 :
효율적으로 특정 "중간 데이터 제품"에 대한 업데이트를 생산할 수 있도록하기 위해, 나는 세 가지 옵션 참조 제품은
upload_timestamp
이 해부에 각 업데이트를 저장할 여분의 열을 추가, 추가 모드에 저장
- 을 만든 전자 폴더, 예컨대 :
data +- part_001 | +- various_files.parquet +- part_002 | +- various_files.parquet +- ...
전체 데이터 세트가
read.parquet()
경로로data/*
를 사용하여 읽을 수 있습니다이 방법.
나는 의견이 있습니다도 있기 때문에, 마지막 방법으로 경향이 있어요 (증거?) 파티션의 크기 (예 this SO question 참조) 커지면 모드 문제에 이르게 추가하는.
내 질문 : 거기에 이런 식으로 데이터 집합 구조를 만드는 몇 가지 심각한 단점이 있습니까? 분명히 Spark는 여러 폴더를 읽을 때 "일부"병합/정렬을 수행해야하지만 그 외에는?
저는 Spark 2.1.0을 사용하고 있습니다.
음, 고마워요! 그래도 내 질문에 대답하지 않습니다. 질문은 오히려/is : 폴더 수 ('data /'아래)가 커지면 Spark에 문제가되는 것입니까? –
나는 그 질문에 대답했다. 짧은 대답은 아니오입니다. 위의 긴 대답은 이유를 설명합니다. Spark 팀은 사람들이 많은 양의 데이터를 가지고 있으며이를 설명하고 있음을 알고 있습니다. 수직 파티셔닝 방식은 주어진 이유에 따라 이러한 분석을 최적화하는 데 도움이됩니다. – Vidya