Azure Databricks调用Spark读取BigQuery报443端口连接错误如何解决
Azure Databricks 读取BigQuery报443连接错误解决方案
该报错本质是Databricks集群无法和BigQuery Storage API服务建立网络连接,即便已经添加域名白名单仍报错,可按以下步骤排查解决:
1. 网络链路排查
- 若集群为VNet注入模式,需同步检查VNet关联的NSG出站规则、路由表配置,确认443端口对GCP公网服务IP段开放。部分防火墙仅配置域名白名单不生效,需同步将BigQuery Storage API对应的GCP官方公网IP段加入白名单。
- 若集群通过代理服务器访问公网,需在Spark配置中追加代理相关JVM参数,示例配置如下:
spark.executor.extraJavaOptions -Dhttp.proxyHost=<代理地址> -Dhttp.proxyPort=<代理端口> -Dhttps.proxyHost=<代理地址> -Dhttps.proxyPort=<代理端口> spark.driver.extraJavaOptions -Dhttp.proxyHost=<代理地址> -Dhttp.proxyPort=<代理端口> -Dhttps.proxyHost=<代理地址> -Dhttps.proxyPort=<代理端口>
- 在Databricks notebook中运行
%sh nc -zv bigquerystorage.googleapis.com 443验证连通性,若返回连接失败,直接确认网络链路未打通,需排查防火墙、NAT规则是否实际生效。
2. 依赖与权限校验
- 确认Spark BigQuery连接器版本与当前Databricks运行时版本匹配,避免版本不兼容导致的网络调用异常。
- 检查BigQuery服务账号配置是否正确,需通过Spark配置指定密钥路径:
spark.conf.set("google.cloud.auth.service.account.json.keyfile", "<你的服务账号密钥文件路径>"),同时确认该服务账号已授予BigQuery Data Viewer、BigQuery Read Session User 必要权限。
3. 读取参数调整
- 临时禁用Storage API读取模式测试连通性,在读取代码中添加
.option("readMethod", "DIRECT"),走标准BigQuery API读取数据,若可正常读取则可定位问题出在Storage API专属链路。 - 检查BigQuery数据集区域配置,若数据集和Databricks集群跨区域,可在读取参数中指定和数据集一致的区域:
.option("location", "<BigQuery数据集所在区域,如us-central1>")
内容的提问来源于stack exchange,提问作者UdayKumarReddy Srinatham
相关产品推荐
相关产品推荐

