1. spark 读取Databricks Hive表报错
val url = "jdbc:databricks:/XXX:443/database_name"
// 使用 Azure Active Directory 令牌进行身份验证
// p.put("AuthMech", "11");
//p.put("Auth_Flow", "0");
//p.put("Auth_AccessToken", "<aad-token>");
//p.put("PWD", "<persoanl-access-token>");
// 使用个人访问令牌进行身份验证
val prop = new Properties()
prop.put("PWD", "XXX")
prop.put("httpPath", "XXX")
val sql = "XXX"
spark.read.jdbc(url,sql,prop)
// demo 为Azure Databircks jdbc 连接方式, 其他平台的Databricks 大同小异
// https://learn.microsoft.com/zh-cn/azure/databricks/integrations/jdbc-odbc-bi#authentication
java.sql.SQLDataException: [Databricks][JDBC](10140) Error converting value to BigDecimal.
通过自定义方言解决
JdbcDialects.registerDialect(new JdbcDialect() {
override def canHandle(url: String): Boolean = url.startsWith("jdbc:databricks") || url.contains("databricks")
override def quoteIdentifier(colName: String): String = colName
})