인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

km9311님의 프로필 이미지

작성한 질문수

실리콘밸리 엔지니어에게 배우는 파이썬 아파치 스파크

rdd, dataframe, spark sql 각각 언제 사용할까요?

해결된 질문

작성

·

38

0

제목 그대로입니다. spark로 처리를 할때 rdd, dataframe, spark sql.. 3가지 방식이 있어보이는데

 

각각 언제 사용하는게 좋을까요..? 방법이 많다보니까 언제 무엇을 사용해야 할 지 해깔리네요

답변 2

0

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

안녕하세요 km9311님,

Spark 2 버전에서는 주로 RDD를 활용했지만, Python에서 RDD를 사용할 경우 성능 저하 문제가 발생할 수 있습니다. 따라서 현재 PySpark에서는 DataFrame을 사용하여 데이터를 테이블 형식으로 변환한 후 SQL을 사용하는 방식이 권장됩니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 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님께서 좀 더 깊게 이해하고 싶으시면 아래의 유사한 질문과 답변도 참고해보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

km9311님의 프로필 이미지

작성한 질문수

질문하기