반응형

www.youtube.com/watch?v=zC9cnh8rJd0

 

Spark processing 추이

Spark 2.0 이전,

Spark Core > SparkContext > RDD > Transformations&Actions

 

Spark 2.0 이후,

Spark SQL > Spark Session > DataFrame > toTable > SQL

(DataFrame에서 바로 분석도 가능하지만, 최적화 성능을 이끌어내기 힘들었음)

 

Spark 2.2 이후, CBO(Cost-Based Pptimizer) 등장, DataFrame 사용시, 자동으로 최적화

Spark SQL > Spark Session > DataFrame > toTable > SQL (쿼리로 분석)

Spark SQL > Spark Session > DataFrame (파이썬으로 분석)

둘다 거의 같은 성능. RDD는 사용x (HIVE 사용시 HIVE SQL에 따라 자동으로 map&reduce를 실행하듯, Spark SQL automatically converted to transformation&action)

 

 

Spark SQL

  •  DataFrame은 스키마를 가지고 있다.(즉, spark가 우리가 필요한 데이터가 어떤 column에 어떤 형식으로 저장되어 있는지 알 수 있다.
    • 따라서 실행시 요구되는 데이터만 메모리에 적재하여 사용한다. 
    • RDD 연산의 경우, 사용하려는 데이터가 속한 모든 데이터를 메모리에 가져와야한다.
  • RDD 및 아주 많은 file format으로 부터 생성 가능하다.
    • RDD에서 DataFrame을 만드는 방법
      • 각 row를 Row Object로 변환 or StructType으로 변환 후, toDF
    • csv, xml, json, HIVE, RDBMS table, NOSQL DB, etc.
  • SQLContext는 spark1.에서 SparkSession은 2.에서 DataFrame을 생성하기 위해 사용됨.

 

Practice

주석 설명 참고

 

Spark_Tutorial_DataFrame_prac

 

반응형

+ Recent posts