手記
この記事では、Databricks Runtime 13.3 LTS 以降の Databricks Connect について説明します。
この記事では、Scala 用 Databricks Connect のトラブルシューティング情報を提供します。 Databricks Connect を使用すると、一般的な IDE、ノートブック サーバー、カスタム アプリケーションを Azure Databricks クラスターに接続できます。 Databricks Connectとは何かについて、を参照してください。. この記事の Python バージョンについては、「Python用 Databricks Connect のトラブルシューティング」を参照してください。
エラー: 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 では、ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません
問題: Windows で Databricks Connect を使用していて、次を参照してください。
The filename, directory name, or volume label syntax is incorrect.
原因: Databricks Connect が 、パスにスペースがあるディレクトリにインストールされました。
解決策: これを回避するには、スペースのないディレクトリ パスにインストールするか、 短い名前の形式を使用してパスを構成します。
エラー: MemoryUtil の初期化に失敗しました
問題: DatabricksSessionをビルドしようとすると、エラー Failed to initialize MemoryUtilが返されます。
原因: 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 の互換性」を参照してください。
ヒント
IntelliJ で Java オプションを設定するには、「 IntelliJ の実行/デバッグ構成」を参照してください。