Scala 用 Databricks Connect のトラブルシューティング

手記

この記事では、Databricks Runtime 13.3 LTS 以降の Databricks Connect について説明します。

この記事では、Scala 用 Databricks Connect のトラブルシューティング情報を提供します。 Databricks Connect を使用すると、一般的な IDE、ノートブック サーバー、カスタム アプリケーションをAzure Databricks クラスターに接続できます。 「Databricks Connect」を参照してください。 Python版の記事については、Databricks Connect for Python をご覧ください。

エラー: StatusCode.UNAVAILABLE、StatusCode.UNKNOWN、DNS 解決に失敗しました、またはステータス 500 の Http2 ヘッダーを受信しました

問題: Databricks Connect でコードを実行しようとすると、StatusCode.UNAVAILABLEStatusCode.UNKNOWNDNS resolution failedReceived http2 header with status: 500 などの文字列を含むエラー メッセージが表示されます。

原因: Databricks Connect がクラスターに到達できません。

解決策:

  • ワークスペース インスタンス名が正しいことを確認します。 環境変数を使用する場合は、関連する環境変数がローカル開発マシンで使用可能で正しいことを確認します。
  • クラスター ID が正しいことを確認します。 環境変数を使用する場合は、関連する環境変数がローカル開発マシンで使用可能で正しいことを確認します。
  • クラスターに Databricks Connect と互換性のある適切なカスタム クラスター バージョンがあることを確認します。

ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありませんWindows

Issue: WindowsでDatabricks Connectを使用しているときに、次の問題が発生します。

The filename, directory name, or volume label syntax is incorrect.

原因: Databricks Connect が 、パスにスペースがあるディレクトリにインストールされました。

解決策: これを回避するには、スペースのないディレクトリ パスにインストールするか、 短い名前の形式を使用してパスを構成します。

エラー: MemoryUtil の初期化に失敗しました

問題: DatabricksSessionをビルドしようとすると、エラー Failed to initialize MemoryUtilが返されます。

Cause: Apache Arrow は Databricks Connect クライアントの依存関係であり、リフレクションを使用してプライベート Java メソッドにアクセスしようとしています。これは、セキュリティ上の考慮事項のため、既定では Java 17 でブロックされています。

解決策:

JVM 初期化の前に、次の JVM フィールドを設定します。

--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED

詳細については、「Apache Arrow Java Compatibility」を参照してください。

ヒント

IntelliJ でJavaオプションを設定するには、「IntelliJ の実行/デバッグの構成を参照してください。