해결된 질문
작성
·
38
0
제목 그대로입니다. spark로 처리를 할때 rdd, dataframe, spark sql.. 3가지 방식이 있어보이는데
각각 언제 사용하는게 좋을까요..? 방법이 많다보니까 언제 무엇을 사용해야 할 지 해깔리네요
답변 2
0
안녕하세요 km9311님,
Spark 2 버전에서는 주로 RDD를 활용했지만, Python에서 RDD를 사용할 경우 성능 저하 문제가 발생할 수 있습니다. 따라서 현재 PySpark에서는 DataFrame을 사용하여 데이터를 테이블 형식으로 변환한 후 SQL을 사용하는 방식이 권장됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. km9311님께서는 RDD, DataFrame, Spark SQL의 사용 시점에 대해 궁금해하셨네요. 이 질문은 Spark 사용 시 필수적으로 알아두어야 할 부분입니다.
RDD (Resilient Distributed Dataset): RDD는 Spark의 기본 데이터 구조입니다. 가장 기본적이며 저수준의 API로 트랜스포메이션이나 액션을 수행할 수 있습니다. 대체로 복잡한 계산이나 데이터 처리 파이프라인이 필요할 때 사용합니다. RDD는 불변성과 복구 기능이 강조되어 있기 때문에, 높은 수준의 핸들링을 요구하는 경우 적합합니다.
DataFrame: DataFrame은 RDD보다 더 고수준의 추상화를 제공하며, 스키마 기반으로 작업하기 때문에 구조화된 데이터에 적합합니다. 표현식이나 관계형 연산을 효율적으로 수행하는 데에 유리하며, Catalyst 옵티마이저 덕분에 SQL-like 쿼리의 최적화를 잘 제공합니다. 테이블 데이터와 같은 데이터를 다룰 때 DataFrame은 매우 유용합니다.
Spark SQL: SQL 쿼리를 통해 DataFrame이나 Dataset을 다룰 수 있는 방법입니다. 관계형 데이터베이스와의 통합이 필요하거나 SQL을 사용한 접근이 익숙할 때 매우 유용합니다. Spark SQL은 DataFrame API와 연동하여 사용될 수 있고, 정형 데이터에서 데이터를 추출하거나 분석할 때 유리합니다.
km9311님께서 좀 더 깊게 이해하고 싶으시면 아래의 유사한 질문과 답변도 참고해보실 수 있습니다:
pyspark / spark 차이점 질문드립니다. - 여기서는 PySpark와 Scala의 차이점에 대해 설명하며 Spark와 관련된 많은 힌트를 제공하고 있습니다.
Colab에 하둡이 설치되어 있는 걸까요? - Spark와 Hadoop의 관계 및 실행 방식을 이해하는 데 도움이 될 수 있는 내용입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.