如何在Azure Synapse Notebook中用PySpark调用ODBC链接服务连接Oracle@Azure(经VM中转)
在Azure Synapse Notebook中用PySpark调用ODBC链接服务示例
以下是调用已配置完成的ODBC链接服务(经VM中转连接Oracle@Azure)的PySpark代码示例:
读取Oracle数据
# 读取Oracle数据库表数据 df = spark.read \ .format("jdbc") \ .option("url", "jdbc:oracle:thin:@//<VM_IP或主机名>:<端口>/<Oracle服务名>") \ .option("dbtable", "<目标表名>") # 也可使用SQL查询:"(SELECT col1, col2 FROM table WHERE id>100) AS temp_table" .option("user", "<Oracle数据库用户名>") \ .option("password", "<Oracle数据库密码>") \ .option("driver", "oracle.jdbc.driver.OracleDriver") \ .option("AzureLinkedService", "<你的ODBC链接服务名称>") \ .load() # 展示前10条数据 df.show(10)
写入数据到Oracle
如果需要将DataFrame数据写入Oracle@Azure,可使用以下代码:
# 写入数据(示例使用append模式,可根据需求替换为overwrite/ignore等) df.write \ .format("jdbc") \ .option("url", "jdbc:oracle:thin:@//<VM_IP或主机名>:<端口>/<Oracle服务名>") \ .option("dbtable", "<目标表名>") \ .option("user", "<Oracle数据库用户名>") \ .option("password", "<Oracle数据库密码>") \ .option("driver", "oracle.jdbc.driver.OracleDriver") \ .option("AzureLinkedService", "<你的ODBC链接服务名称>") \ .mode("append") \ .save()
关键参数说明
AzureLinkedService:指定Synapse中已测试通过的ODBC链接服务名称,Synapse会自动复用该服务的网络配置(通过VM中转的连接通道)url:Oracle@Azure的JDBC连接地址,格式需匹配Oracle Thin驱动要求driver:Oracle官方JDBC驱动类,Synapse运行时已预装该驱动,无需额外部署
内容的提问来源于stack exchange,提问作者S. Hasan
相关产品推荐
相关产品推荐

