Spark SQL----Troubleshooting
- JDBC驱动程序类必须对客户端会话和所有executor上的原始类加载器可见。这是因为Java的DriverManager类进行安全检查,导致它在打开连接时忽略所有原始类加载器不可见的驱动程序。一种方便的方法是在所有worker节点上修改compute_classpath.sh,以包含你的驱动程序JAR。
- 某些数据库(如H2)会将所有名称转换为大写。你需要使用大写字母来引用Spark SQL中的这些名称。
- 用户可以在数据源选项中指定特定于vendor的JDBC连接属性来进行特殊处理。例如,spark.read.format(“jdbc”).option(“url”, oracleJdbcUrl).option(“oracle.jdbc.mapDateToTimestamp”, “false”)。 oracle.jdbc.mapDateToTimestamp默认为true,用户通常需要禁用此标志以避免将oracle日期解析为时间戳。