JDBC方言

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
    })

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值