我正在使用 Spark Snowflake 库将数据从 Snowflake 加载到 Spark DataFrame 中,但有时我会遇到通信错误。因此,这是一个间歇性错误,有时会发生,有时则运行良好。 该作业是通过气流 2.6.3 安排的。
我收到的错误消息是:
Error in data fetch: An error occurred while calling o47.load.\n: net.snowflake.client.jdbc.SnowflakeSQLException: JDBC driver encountered communication error. Message: HTTP status=503.\n\tat
Spark版本:3.3.4
Snowflake Spark 连接器版本:spark-snowflake_2.13-2.13.0-spark_3.3
雪花 JDBC:snowflake-jdbc-3.15.1.jar
这是我生成雪花配置的方法
snowflake_spark_conf = {
"sfURL": self.config.snowflake.url,
"sfUser": self.config.snowflake.user,
"pem_private_key": certificate,
"sfDatabase": self.config.snowflake.database,
"sfSchema": self.config.snowflake.schema,
"sfWarehouse": self.config.snowflake.warehouse,
"sfRole": self.config.snowflake.role,
}
self.df = (
self._spark_session()
.read.format("net.snowflake.spark.snowflake")
.options(**snowflake_spark_conf)
.option("query", query)
.load()
还有其他人在使用 Spark Snowflake 库时遇到过此 HTTP 503 错误吗?可能是什么原因导致此问题?我该如何解决?
谢谢您的帮助!
我没有尝试过任何方法来解决这个问题,这种情况并不总是发生
您无能为力。 503 表示该服务不可用。后端的雪花可以根据负载放大或缩小。在此期间,预计会回复客户 503。
如果这种情况发生的频率足以让您被认为具有破坏性,那么我建议您联系 Snowflake 支持人员进行调查。
maxHttpRetries
参数并将其设置为高于默认值 7 的值,要求 JDBC 驱动程序重试 HTTP 请求的时间稍长一些。