OneLake と Azure Databricks の統合
このシナリオでは、Azure Databricks 経由で OneLake に接続する方法を示します。 このチュートリアルを完了すると、Azure Databricks ワークスペースから Microsoft Fabric レイクハウスへの読み取りと書き込みを実行できるようになります。
前提条件
接続する前に、以下が必要になります。
- Fabric ワークスペースとレイクハウス。
- Premium Azure Databricks ワークスペース。 このシナリオに必要な Microsoft Entra の認証情報パススルーは、Premium Azure Databricks ワークスペースでのみサポートされています。
Databricks ワークスペースを設定する
Azure Databricks ワークスペースを開き、[作成]>[クラスター] を選択します。
Microsoft Entra ID を使用して OneLake に対する認証を行うには、[詳細オプション] でクラスターに対して Azure Data Lake Storage (ADLS) 認証情報パススルーを有効にする必要があります。
Note
サービス プリンシパルを使用して Databricks を OneLake に接続することもできます。 サービス プリンシパルを使用した Azure Databricks の認証に関する詳細については、「サービス プリンシパルの管理」を参照してください。
優先パラメーターによるクラスターの作成 Databricks クラスターの作成に関する詳細については、「クラスターの構成 - Azure Databricks」を参照してください。
ノートブックを開き、新しく作成したクラスターに接続します。
ノートブックを作成する
Fabric レイクハウスに移動し、Azure Blob File System (ABFS) パスをレイクハウスにコピーします。 これは、[プロパティ] ウィンドウで確認できます。
Note
Azure Databricks では、ADLS Gen2 と OneLake:
abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/
への読み取りと書き込みを行う場合のみ、Azure Blob File System (ABFS) ドライバーがサポートされます。Databricks ノートブックにレイクハウスへのパスを保存します。 このレイクハウスは、後で処理したデータを書き込む場所です。
oneLakePath = 'abfss://myWorkspace@onelake.dfs.fabric.microsoft.com/myLakehouse.lakehouse/Files/'
Databricks パブリック データセットからデータフレームにデータを読み込みます。 Fabric の他の場所からファイルを読み取ったり、既に所有している別の ADLS Gen2 アカウントからファイルを選択したりすることもできます。
yellowTaxiDF = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/databricks-datasets/nyctaxi/tripdata/yellow/yellow_tripdata_2019-12.csv.gz")
データをフィルター処理、変換、または準備します。 このシナリオでは、データセットをトリミングして、読み込みを高速化したり、他のデータセットと結合したり、特定の結果にフィルター処理したりできます。
filteredTaxiDF = yellowTaxiDF.where(yellowTaxiDF.fare_amount<4).where(yellowTaxiDF.passenger_count==4) display(filteredTaxiDF)
OneLake パスを使って、フィルター処理されたデータフレームを Fabric レイクハウスに書き込みます。
filteredTaxiDF.write.format("csv").option("header", "true").mode("overwrite").csv(oneLakePath)
新しく読み込まれたファイルを読み取って、データが正常に書き込まれたことをテストします。
lakehouseRead = spark.read.format('csv').option("header", "true").load(oneLakePath) display(lakehouseRead.limit(10))
おめでとうございます。 Azure Databricks を使用して、Fabric でデータを読み取ったり書き込んだりできるようになりました。