手記
この記事では、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.UNAVAILABLE、StatusCode.UNKNOWN、DNS resolution failed、Received 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 の実行/デバッグの構成を参照してください。