トラブルシューティング
- JDBC ドライバーのクラスは、クライアントセッションやすべての Executor で最も原始的なクラスローダーに対して可視である必要があります。これは、Java の DriverManager クラスが、接続を開く際に最も原始的なクラスローダーに対して可視ではないすべてのドライバーを無視するセキュリティチェックを実行するためです。これを行う便利な方法は、すべてのワーカーノードで compute_classpath.sh を変更し、ドライバー JAR を含めることです。
- H2 などのデータベースの中には、すべての名前を大文字に変換するものがあります。Spark SQL でそれらの名前を参照するには、大文字を使用する必要があります。
- ユーザーは特殊な処理を行うためにデータソースオプションでベンダー固有の JDBC 接続プロパティを指定できます。たとえば、
spark.read.format("jdbc").option("url", oracleJdbcUrl).option("oracle.jdbc.mapDateToTimestamp", "false")
のように指定します。oracle.jdbc.mapDateToTimestamp
のデフォルト値は true です。ユーザーはこのフラグを無効にして、Oracle 日付がタイムスタンプとして解決されないようにする必要があります。