疑難排解
- JDBC 驅動程式類別必須對用戶端工作階段和所有執行緒的原始類別載入器可見。這是因為 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 日期解析為時間戳記。