• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

SQL문으로 DataFrame 메소드를 대체할 수 있을까요?

22.04.22 14:34 작성 조회수 93

0

안녕하세요 선생님.

제공해주신 스파크 강의 잘 듣고 있습니다.

수강 중 들었던 생각이 있어 글 남깁니다.

기존에 SQL 문법을 알고있는 사람의 입장에서는 SQL문으로 작성을 하는게 DataFrame의 메소드를 사용하는 것보다 훨씬 쉽게 느껴지는데, 만약 그렇다면 그냥 SQL문으로 작성하는 방법만 숙지하고 있어도 사용하는데는 문제가 없을까요?

아니면 DataFrame의 메소드에서는 지원하지만 SQL문으로는 할 수 없는 기능같은 것들이 있는걸까요?

답변 1

답변을 작성해보세요.

1

안녕하십니까, 

저도 SQL 만 알고 있으면 데이터 처리에 큰 이슈가 없다고 생각합니다.  그리고 Spark의 주요 데이터 처리 인터페이스가 SQL이 되어야 한다고 생각합니다. 

Spark는 RDD 기반에서 DataFrame으로 전환되었을 때 많은 사용자들을 수용하게 되었습니다. DataFrame에 익숙한 사용자들도 많습니다. 그리고 Spark 머신러닝이 DataFrame을 기반으로 동작합니다. 

강의에서도 말씀드리고 있지만 Spark SQL은 Spark DataFrame에 기반하고 있습니다. 어쩌면 Spark에서도 최종적으로 DataFrame에서 SQL로 유연하게 전환하기 위해서 Spark DataFrame API를 SQL과 유사하게 설계했을 수도 있습니다(제 뇌피셜입니다)

SQL이 아니고 DataFrame에서만 수행 가능할 수 있는 것은 기능상 보다는(아까 언급한 ML 이 DataFrame에서 구동하는것 말고), 로직 수행이 차이가 있습니다. 

가령 for loop를 좀 더 유연하게 사용하기에는 DataFrame이 더 적합합니다. API를 호출하기에 for loop 내에서 좀 더 복잡하게 로직을 구사할 수 있는 장점이 있습니다.  저는 이거 외에는 SQL 대비 DataFrame장점을 찾기는 어려울 것 같다는게 개인적인 생각입니다. 

감사합니다. 

감사합니다. 선생님. 매번 느끼지만 이런 온라인 강의에서 질문에 대해 이렇게 정확히 캐치하고 정말 궁금했던 부분을 잘 알려주시는 선생님은 철민 선생님 밖에 없었던 것 같습니다..... 감사합니다 선생님

오, 이런 칭찬을, 오히려 제가 감사드립니다.