ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Azure Synapse에 있는 Spark 클러스터로 NYC Taxi 데이터 분석
    Data 2022. 8. 30. 17:42
    반응형

    NYC Taxi 데이터 다운로드 및 Spark 에 데이터 로드

    • 샘플데이터 다운로드

    • Download this file to your computer: https://azuresynapsestorage.blob.core.windows.net/sampledata/NYCTaxiSmall/NYCTripSmall.parquet

    1. Synapse Studio에서 개발 허브로 이동합니다.
    2. 시냅스에 있는 spark notebook 으로 데이터 분석하는 방법
    3. 노트북을 오픈하고 spark cluster 를 선택한다.
    4. spark cluster 를 활성화 시킨다.

    기본 저장소 계정에 샘플 데이터를 배치 했는지 확인 합니다 .

    1. 새 노트북을 만듭니다.
    2. 새 코드 셀을 만들고 해당 셀에 다음 코드를 붙여넣습니다.
    %%pyspark
    df = spark.read.load('abfss://users@contosolake.dfs.core.windows.net/NYCTripSmall.parquet', format='parquet')
    display(df.limit(10))
    
    

    1. 로드 URI를 수정하여 abfss URI 체계 에 따라 저장소 계정의 샘플 파일을 참조하도록 합니다 .
    2. 노트북의 연결 대상 메뉴에서 앞에서 만든 서버리스 Spark 풀을 선택합니다.
    3. 셀에서 실행 을 선택 합니다. Synapse는 필요한 경우 이 셀을 실행하기 위해 새 Spark 세션을 시작합니다.
    4. 데이터 프레임의 스키마만 보려면 다음 코드로 셀을 실행하십시오.
    %%pyspark
    df.printSchema()
    

    NYC Taxi 데이터를 Spark nyctaxi 데이터베이스에 로드

    데이터는 df 라는 데이터 프레임을 통해 사용할 수 있습니다 . nyctaxi 라는 Spark 데이터베이스에 로드합니다 .

    1. 노트북에 새 코드 셀을 추가하고 다음 코드를 입력합니다.
    2.  
    3. %%pyspark spark.sql("CREATE DATABASE IF NOT EXISTS nyctaxi") df.write.mode("overwrite").saveAsTable("nyctaxi.trip")

    Spark 및 노트북을 사용하여 NYC Taxi 데이터 분석

    1. 새 코드 셀을 만들고 다음 코드를 입력합니다.
    2. %%pyspark df = spark.sql("SELECT * FROM nyctaxi.trip") display(df)
    3. 셀을 실행하여 nyctaxi Spark 데이터베이스에 로드한 NYC Taxi 데이터를 표시합니다.
    4. 새 코드 셀을 만들고 다음 코드를 입력합니다. 이 데이터를 분석하고 결과를 nyctaxi.passengercountstats 라는 테이블에 저장합니다 .
    5. %%pyspark df = spark.sql(""" SELECT PassengerCount, SUM(TripDistanceMiles) as SumTripDistance, AVG(TripDistanceMiles) as AvgTripDistance FROM nyctaxi.trip WHERE TripDistanceMiles > 0 AND PassengerCount > 0 GROUP BY PassengerCount ORDER BY PassengerCount """) display(df) df.write.saveAsTable("nyctaxi.passengercountstats")
    6. 셀 결과에서 차트 를 선택하여 시각화된 데이터를 확인합니다.

    SQL 에서 위에서 만든 spark 테이블을 시냅스의 sql 에서는 아래와 같이 동일하게 쿼리해서 데이터를 분석할수 있습니다.

    반응형

    댓글

Designed by Tistory.