Python Autocomplete Improvements for Databricks Notebooks - The Databricks Blogの翻訳です。
Pythonのオートコンプリート、docstrings、Koalasライブラリにおけるノートブックの強化
Databricksにおいては、ユーザーの生産性を向上するために、定期的にノートブックに機能追加を行い、データサイエンティスト、データエンジニアの皆様が世界レベルの開発体験を得られる様に尽力しています。今回、Pythonノートブックにオートコンプリートの機能を(Jediライブラリのサポートによって)追加できたこと、また新たなdocstringのコードヒントを追加できたことに大変興奮しています。これらの機能はDatabricks Runtime 7.4(DBR 7.4)で利用可能になります。つまり、DBR 7.4以降のクラスターでPythonノートブックを使用することで、これらの機能を利用することができます。
タブキーを押すことで、この新たなオートコンプリートの機能を利用できます。キーを押すことで、システムはカーソル位置にある入力を検査し、現在のノートブックの状態に基づいて判別される型情報と併せて入力候補を表示します。補完された情報に関して追加のヘルプが必要な場合には、シフト+タブキーを押すことで、docstringのコードヒントを参照することができます。
また、我々は上記のオートコンプリートサポートとともにKoalasライブラリの新バージョン(1.4.0)を公開しました。こちらはDBR 7.5から利用可能となります。Koalasライブラリは、データサイエンスにおけるpandas Pythonライブラリの代替となるものです。ユーザーにと手は馴染みのあるpandas APIを提供しながらも、バックエンドにあるSparkのビッグデータ処理能力を活用することができます。
Jediライブラリによる静的コード解析を用いたPythonオートコンプリート
Databricksのノートブックは、インタラクティブなPythonインタプリタであるIPython REPLによって実行されます。IPython 6.0 REPLは、コードコンプリーションのために、Jupyter notebookにおけるオートコンプリートに用いられているJediライブラリを導入しました。Jediライブラリによって、これまで私たちが入力候補を提示するために行っていた静的コード解析の実装を大幅に改善することができました。静的コード解析によって、セル(コマンド)を実行することなしにオブジェクト名、形、関数の引数を解決することができる様になりました。
Koalasライブラリでもオートコンプリートが利用可能です
シフト+タブキーによるPython docstring
新たなオートコンプリートに加えて、DBR 7.4ではシフト+タブキーでdocstringのヒントを表示することができます。Docstringは、ソースコードにインライン形式でPEP 257フォーマットで記述されたコードのコメントです。Docstringは解決されたオブジェクト名に対するhelp()関数で表示されるものと同じものとなります。オブジェクトはノートブックのセルを実行することでPython REPLにロードされます。
Koalasライブラリのdocstring例
Koalas: pandasライブラリの代替
データサイエンスにおいて人気のあるpandasライブラリの代替として、DatabricksはKoalasライブラリを提供します。pandas APIとの互換性を維持しながら、PySparkのデータフレームAPIを活用することで、Apache Sparkのビッグデータ処理能力を活用することができます。こちらの記事(Koalas: Easy Transition from pandas to Apache Spark、the Koalas documentation)も参考にしてください。Databricksは新たなKoalasバージョン1.4.0を、新たなオートコンプリート、docstringの機能とともにリリースしました。
Koalasにおける型アノテーションの強化
Koalas 1.4.0においては、主要なKoalasオブジェクト(データフレーム、シリーズ、インデクスなど)における戻り値の型アノテーションを追加しました。この戻り値の型アノテーションにより、コーディングにおいてKoalasライブラリを使用する際に、オートコンプリートが正確かつ信頼性のある候補を提示することを可能にしました。
戻り値の型アノテーションの網羅的な対応により、pandasライブラリと比較してKoalasライブラリの方が優れたオートコンプリートを提供できる様になりました。pandasライブラリにおける技術的制限により、pandasライブラリにおいては、いくつかのケースでオートコンプリートが動作しません。
pandasにおいてオートコンプリートが動作しないケース
ノートブックにおけるKoalas docstring
開発者がKoalas APIを容易に理解できる様に、我々はKoalas 1.4.0の一部として豊富なdocstringを追加しました。Koalas APIは分散環境での動作を前提として設計されているため、対応するpandas APIと僅かな違いが生じるケースがあります。新たなdocstringヒントの機能によって、いちいちソースコードを見たりドキュメントを調査することなしに、シフト+タブキーを押すことで、すぐにdocstringにアクセスすることができます。
改善されたオートコンプリート機能を利用するためには
DBR 7.4以降のクラスターにノートブックをアタッチするだけで、改善されたこれらの機能(オートコンプリート、docstring)を利用できます。まず、ノートブックの先頭に新たにセルを追加し、必要なライブラリをimport
する処理を記述し実行します。ライブラリがインポートされることで、ノートブック全体でオートコンプリートが有効になります。コーディングの過程で、オートコンプリートを利用するためにはタブキー、docstring、関数のパラメータを参照するにはシフト+タブキーを押します。
ノートブックのセルを実行する予定がない場合(単なるスクラッチの作業をするケース)には、import
とコードを同じセルにまとめることをお勧めします。
最新のKoalasのオートコンプリート、docstringの機能を利用するには、DBR 7.4のクラスターにKoalas 1.4.0をインストールします。DBR 7.5にはKoalasライブラリは同梱されています。
参考情報
- Jedi: static code analysis for Python
- Koalas: Easy Transition from pandas to Apache Spark
- Koalas API documentation: Apache Spark向けpandasライブラリ
- Docstrings in PEP 257