Databricks - 如何将 accessToken 传递给 spark._sc._gateway.jvm.java.sql.DriverManager?
Databricks - How to pass accessToken to spark._sc._gateway.jvm.java.sql.DriverManager?
我想通过以下功能使用数据块 运行 一些自定义 SQL,我可以知道如何将“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()
它return:
py4j.Py4JException: Method getConnection([class java.lang.String, class java.util.HashMap]) does not exist
谢谢!
它不起作用,因为 DriverManager
没有接受从 Python 字典创建的 HashMap 的函数 - 它有 function that accepts Properties object。您可以像获取 DriverManager
实例一样创建属性对象的实例,然后将此对象传递给 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)
我想通过以下功能使用数据块 运行 一些自定义 SQL,我可以知道如何将“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()
它return:
py4j.Py4JException: Method getConnection([class java.lang.String, class java.util.HashMap]) does not exist
谢谢!
它不起作用,因为 DriverManager
没有接受从 Python 字典创建的 HashMap 的函数 - 它有 function that accepts Properties object。您可以像获取 DriverManager
实例一样创建属性对象的实例,然后将此对象传递给 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)