Databricks如何将accessToken传递给spark.\u sc.\u gateway.jvm.java.sql.DriverManager?

2024-09-27 21:28:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用databricks来运行一些自定义SQL by below函数,我可以知道如何添加“accessToken”作为属性吗

mssql_url = "jdbc:sqlserver://XXXX.database.windows.net:XXX;database=XXXXX"

connectionProperties1 = {
  "accessToken" : access_token
}

driver_manager = spark._sc._gateway.jvm.java.sql.DriverManager
connection = driver_manager.getConnection(mssql_url,connectionProperties1)
connection.prepareCall("EXEC sys.sp_tables").execute()
connection.close()

它返回:

py4j.Py4JException: Method getConnection([class java.lang.String, class java.util.HashMap]) does not exist

谢谢


Tags: urlsqlbydrivermanagerjavaconnectiondatabase
1条回答
网友
1楼 · 发布于 2024-09-27 21:28:23

它不起作用,因为DriverManager没有接受从Python dict创建的HashMap的函数-它有function that accepts Properties object。您可以使用获取DriverManager实例的相同方法创建properties对象的实例,然后将此对象传递给getConnection函数:

mssql_url = "jdbc:sqlserver://XXXX.database.windows.net:XXX;database=XXXXX"

connectionProperties1 = {
  "accessToken" : access_token
}

# create Properties object from the Python dict
props = spark._sc._gateway.jvm.java.util.Properties()
props.putAll(connectionProperties1)

driver_manager = spark._sc._gateway.jvm.java.sql.DriverManager
connection = driver_manager.getConnection(mssql_url,props)

相关问题 更多 >

    热门问题