1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft FabricAdvent Calendar 2024

Day 13

Microsoft Fabric での Python ノートブックエクスペリエンス

Posted at

はじめに

これまで、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

使い方

セットアップ

言語設定を変えるのみです。

image.png

セルが pyspark から python に変更されます。セルを実行すると数秒で python カーネルが起動します。

image.png

Delta Lake へのアクセス

コードスニペットのこちらを採用してみます。パスの取得は、Microsoft Fabric OneLake を DuckDB で分析する を参考に。

image.png

python

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)

image.png

Duck DB もビルトインされているため、すぐに利用可能です。delta_scanを使用して直接 duck db に読み取らせると、より大きなデータセットに対応可能

image.png

リソース確認

画面下部にセッション情報として以下のように表示されます。

image.png

監視ハブではそこまで多くの情報はまだ表示されないようです。

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?