Databricks Connect for Scala の高度な使い方
この記事では、Databricks Runtime 14.3 以降の Databricks Connect について説明します。
この記事では、Databricks Connect の基本的なセットアップ以外のトピックについて説明します。
ログ記録とデバッグログ
Databricks Connect for Scala は SLF4J ログを使用し、SLF4J プロバイダーには付属していません。
Databricks Connect を使用するアプリケーションには、そのアプリケーションに適した SLF4J プロバイダーが含まれていることが期待されます。
適切なログ・プロバイダを追加し、場合によってはログ・メッセージを出力するように構成する必要があります。 最も簡単なオプションは、標準エラーストリーム ( stderr) に 以上のログメッセージを出力する slf4j-simpleプロバイダINFO
を含めることです。
より設定可能な代替手段は、クラスパスのlog4j.properties
ファイルから設定を取得する slf4j-reload4j プロバイダを使用することです。
次のコード スニペットは、単純な log4j.properties
ファイルを示しています。
log4j.rootLogger=INFO,stderr
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
前の例では、ルート ロガーまたは特定のロガーが DEBUG
レベルで構成されている場合、つまり次の行を変更することによって、デバッグ ログが出力されます。
log4j.rootLogger=DEBUG,stderr
証明 書
クラスターがカスタム SSL/TLS 証明書に依存して Databricks ワークスペースの完全修飾ドメイン名 (FQDN) を解決する場合は、ローカル開発マシンで環境変数 GRPC_DEFAULT_SSL_ROOTS_FILE_PATH
を設定する必要があります。 この環境変数は、クラスタにインストールされている証明書のフルパスに設定する必要があります。
たとえば、この環境変数を Scala コードで次のように設定します。
import scala.sys.process._
val envVar = "GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"
val envValue = "/etc/ssl/certs/ca-bundle.crt"
// Setting the environment variable
val process = Process(Seq("bash", "-c", s"export $envVar=$envValue"))
process.!
環境変数を設定するその他の方法については、オペレーティングシステムのドキュメントを参照してください。