모든 언어에서 DataFrame, Dataset, SQL의 속도는 동일
자바나 스칼라를 사용해 UDF를 정의하는 것이 좋음
RDD를 사용하려면 스칼라나 자바를 사용하는 것이 좋음
파일 기반 장기 데이터 저장소에는 다양한 데이터 포맷을 사용할 수 있음
데이터를 바이너리 형태로 저장하려면 구조적 API를 사용하는 것이 좋음
CSV같은 파일은 구조화되어 있는 것처럼 보이지만 파싱 속도가 아주 느리고 예외 상황이 자주 발생함
가장 효율적으로 사용할 수 있는 파일 포맷은 아파치 파케이
데이터를 파티션이나 버켓으로 구성하려면 파일 수와 저장하려는 파일 크기도 고려해야함
작은 파일이 많으면 파일 목록 조회와 파일 읽기 과정에서 부하가 발생함
근데 트레이드오프가 있음
데이터를 효율적으로 저장하려면 입력 데이터 파일이 최소 수십 메가바이트의 데이터를 갖도록 파일의 크기를 조정하는 것이 좋음
메모리 부족의 원인 3가지
3번 문제는 구조적 API로 해결 가능
JVM객체를 생성하지 않으므로