はじめに
これまで、Microsoft Fabric Spark ノートブックを効果的に使用するなどの記事で、リソースを無駄遣いせずにノートブックを使用する方法を案内してきましたが、 python を主に利用するデータサイエンティスト向けの新機能として、Python ノートブック なるものがプレビュー開始したので紹介します。
主な機能
- ネイティブPythonサポート: ipywidget、マジックコマンドなど、箱から出してすぐに使用できるネイティブ機能とライブラリを備えたPythonのフルパワーをお楽しみください。
- バージョンの柔軟性: 異なるPythonバージョンを簡単に切り替えることができます(最初はPython 3.11と3.10をサポートしています)。
- リソース使用率の最適化: より小さな 2 仮想コア/16G メモリ コンピューティングにより、リソース使用率の向上を活用できる、リアルタイムのリソース使用率モニターを利用できます。
- レイクハウスとリソースがネイティブに利用可能: Fabric Lakehouseの機能をシームレスに活用し、モジュール、ライブラリ、ファイルを保存するための組み込みのリソースフォルダを備えています。
- T-SQL とプログラミングを混在させる:Data Warehouses はネイティブにサポートされており、notebookutils を使用して T-SQL ステートメントで Data Warehouse を簡単に読み書きできます。
優れたPythonインテリセンス:強力なPylanceがネイティブに統合され、よりスムーズなコーディング体験を提供します。- 一般的なライブラリがプリインストールされています。duckdb、polars、その他の人気のある3を使用してRDのPythonノートブックのパーティーライブラリを便利に。Semantic Link (SemPy) や NotebookUtils などの Fabric ユーティリティもネイティブにサポートされています。
- カスタムセッション設定:ライブプールエクスペリエンスでは、5秒でセッションがデフォルトで有効になっていますが、%%configureを使用して、特定のハードウェア設定、マウントポイント、デフォルトのレイクハウスで独自のセッションをカスタマイズすることもできます。
- ファブリックエコシステムとのシームレスな統合: 共有、CI / CD、スケジュール実行、データパイプライン統合、OrgAPP統合など、Fabricノートブックのすべての利点は、Pythonエクスペリエンスで利用できます。
引用:https://blog.fabric.microsoft.com/en-us/blog/python-notebook-public-preview?ft=All
ということで、大規模処理を目的とした spark ではなく、小規模なリソースから利用できる python の利用に最適化されたノートブック体験となっています。
docs: https://learn.microsoft.com/ja-jp/fabric/data-engineering/using-python-experience-on-notebook
使い方
セットアップ
言語設定を変えるのみです。
セルが pyspark から python に変更されます。セルを実行すると数秒で python カーネルが起動します。
Delta Lake へのアクセス
コードスニペットのこちらを採用してみます。パスの取得は、Microsoft Fabric OneLake を DuckDB で分析する を参考に。
from deltalake import DeltaTable
table_path = "abfssパス" # replace with your table abfss path
storage_options = {"bearer_token": notebookutils.credentials.getToken("storage"), "use_fabric_endpoint": "true"}
dt = DeltaTable(table_path, storage_options=storage_options)
limited_data = dt.to_pyarrow_dataset().head(1000).to_pandas()
display(limited_data)
Duck DB もビルトインされているため、すぐに利用可能です。delta_scanを使用して直接 duck db に読み取らせると、より大きなデータセットに対応可能
リソース確認
画面下部にセッション情報として以下のように表示されます。
監視ハブではそこまで多くの情報はまだ表示されないようです。