다음을 통해 공유


Apache Spark를 사용하여 데이터 변환 및 SQL을 사용하여 쿼리

이 가이드에서는 다음을 수행합니다.

  • OneLake 파일 탐색기를 사용하여 데이터를 OneLake에 업로드합니다.

  • Fabric Notebook을 사용하여 OneLake에서 데이터를 읽고 Delta 테이블로 다시 씁니다.

  • Fabric Notebook을 사용하여 Spark에서 데이터를 분석하고 변환합니다.

  • SQL을 사용하여 OneLake에서 하나의 데이터 복사본을 쿼리합니다.

필수 조건

시작하기 전에 다음을 수행해야 합니다.

  • OneLake 파일 탐색기를 다운로드하여 설치합니다.

  • 레이크하우스 항목을 사용하여 작업 영역을 만듭니다.

  • WideWorldImportersDW 데이터 세트를 다운로드합니다. Azure Storage Explorer를 사용하여 https://fabrictutorialdata.blob.core.windows.net/sampledata/WideWorldImportersDW/csv/full/dimension_city에 연결하고 csv 파일 집합을 다운로드할 수 있습니다. 또는 사용자 고유의 csv 데이터를 사용하고 필요에 따라 세부 정보를 업데이트할 수 있습니다.

참고 항목

항상 레이크하우스의 Tables 섹션 바로 아래에 Delta-Parquet 데이터를 만들거나 로드하거나 이 데이터에 대한 바로 가기를 만듭니다. 레이크하우스에서 테이블로 인식하지 않고 레이블을 '식별되지 않음'으로 지정하므로 테이블을 Tables 섹션 아래의 하위 폴더에 중첩하지 마세요.

데이터 업로드, 읽기, 분석 및 쿼리

  1. OneLake 파일 탐색기에서 레이크하우스로 이동하고, /Files 디렉터리 아래에서 dimension_city라는 하위 디렉터리를 만듭니다.

    OneLake 파일 탐색기에서 만든 새 폴더의 스크린샷

  2. OneLake 파일 탐색기를 사용하여 샘플 csv 파일을 /Files/dimension_city OneLake 디렉터리에 복사합니다.

    파일 탐색기에서 파일을 OneLake에 복사하는 스크린샷

  3. Power BI 서비스에서 레이크하우스로 이동하여 파일을 확인합니다.

    Fabric의 레이크하우스에서 파일을 확인하는 스크린샷

  4. Notebook 열기, 새 Notebook을 차례로 선택하여 Notebook을 만듭니다.

    Fabric에서 새 Notebook을 만드는 스크린샷

  5. Fabric Notebook을 사용하여 CSV 파일을 Delta 형식으로 변환합니다. 다음 코드 조각에서는 사용자가 만든 /Files/dimension_city 디렉터리 에서 데이터를 읽고 dim_city Delta 테이블로 변환합니다.

    import os
    from pyspark.sql.types import *
    for filename in os.listdir("/lakehouse/default/Files/<replace with your folder path>"):
        df=spark.read.format('csv').options(header="true",inferSchema="true").load("abfss://<replace with workspace name>@onelake.dfs.fabric.microsoft.com/<replace with item name>.Lakehouse/Files/<folder name>/"+filename,on_bad_lines="skip")
        df.write.mode("overwrite").format("delta").save("Tables/<name of delta table>")
    
  6. 새 테이블을 보려면 /Tables 디렉터리의 보기를 새로 고칩니다.

    Fabric의 레이크하우스에서 테이블을 보는 스크린샷

  7. 동일한 Fabric Notebook에서 SparkSQL을 사용하여 테이블을 쿼리합니다.

    %%sql
    SELECT * from <replace with item name>.dim_city LIMIT 10;
    
  8. 데이터 형식이 정수인 newColumn이라는 새 열을 추가하여 Delta 테이블을 수정합니다. 새로 추가된 이 열의 모든 레코드에 대해 9 값을 설정합니다.

    %%sql
    
    ALTER TABLE <replace with item name>.dim_city ADD COLUMN newColumn int;
    
    UPDATE <replace with item name>.dim_city SET newColumn = 9;
    
    SELECT City,newColumn FROM <replace with item name>.dim_city LIMIT 10;
    
  9. SQL 분석 엔드포인트를 통해 OneLake의 모든 Delta 테이블에 액세스할 수도 있습니다. SQL 분석 엔드포인트는 OneLake에서 Delta 테이블의 동일한 물리적 복사본을 참조하고 T-SQL 환경을 제공합니다. lakehouse1에 대한 SQL 분석 엔드포인트를 선택한 다음, 새 SQL 쿼리를 선택하여 T-SQL을 통해 테이블을 쿼리합니다.

    SELECT TOP (100) * FROM [<replace with item name>].[dbo].[dim_city];