0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity Catalog Python UDFにおける外部ライブラリのインストール

Posted at

こちらのアップデートです。Python UDF(ユーザー定義関数)に更なる柔軟性を提供します。

Unity Catalog Python UDFにおけるカスタムの依存関係のインストール(パブリックプレビュー)
外部ライブラリのカスタム依存関係を定義することで、Databricksランタイム環境を超えてPython UDFの機能を拡張します。カスタムの依存関係を使用したUDFの拡張をご覧ください。

試してみます。

注意
本機能は以下のコンピュートタイプでサポートされています。

  • サーバーレスコンピュート
  • Databricks Runtimeバージョン16.2以上を使用した汎用コンピュート
  • SQLウェアハウス クラシックまたはプロ

ジョークを返すpyjokes(jokes as a service)を使ってUDFを定義します。

初めは依存関係を定義しないでPython UDFを定義します。

%sql
CREATE OR REPLACE FUNCTION users.takaaki_yayoi.get_joke()
RETURNS STRING
LANGUAGE PYTHON
AS $$
import pyjokes
return pyjokes.get_joke()
$$;

UDFを呼び出すとpyjokesが見つからないというエラーになります。

SELECT users.takaaki_yayoi.get_joke()
[UDF_USER_CODE_ERROR.GENERIC] Execution of function users.takaaki_yayoi.get_joke() failed. 
== Error ==
ModuleNotFoundError: No module named 'pyjokes'
== Stacktrace ==
  File "<udfbody>", line 2, in main
    import pyjokes SQLSTATE: 39000

Screenshot 2025-03-26 at 13.17.36.png

マニュアルに従って、ENVIRONMENTセクションを追加します。dependenciesに依存関係"pyjokes==0.8.3"を定義します。今のところenvironment_version'None'しか指定できません。

%sql
CREATE OR REPLACE FUNCTION users.takaaki_yayoi.get_joke()
RETURNS STRING
LANGUAGE PYTHON
ENVIRONMENT (
  dependencies = '["pyjokes==0.8.3"]',
  environment_version = 'None'
)
AS $$
import pyjokes
return pyjokes.get_joke()
$$;

今回は成功します。

%sql
SELECT users.takaaki_yayoi.get_joke()

Screenshot 2025-03-26 at 13.20.08.png

ご活用ください!

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?