【问题标题】:Not able to connect to Snowflake from EMR Cluster using Pyspark无法使用 Pyspark 从 EMR 集群连接到雪花
【发布时间】:2020-04-10 04:10:16
【问题描述】:

我正在尝试使用 pyspark 从 EMR 集群连接到 Snowflake。

我在 spark-submit 中使用这两个 jar。

  • 雪花-jdbc-3.5.2.jar
  • spark-snowflake_2.11-2.7.0-spark_2.4.jar

但由于连接超时错误而失败。 我为 EMR 集群配置了正确的代理。来自同一个 EC2(EMR 主控) 我可以使用snowsql 和 python 连接器连接到 Snowflake。

我不确定为什么 pyspark 会超时。

【问题讨论】:

  • 你能分享你关注的代码 sn-p 吗?有时由于代理问题,它可能无法连接。比如 http_proxy , https_proxy , HTTP_PROXY HTTPS_PROXY no_proxy 设置需要在这种情况下使用
  • SNOWFLAKE_SOURCE_NAME = "net.snowflake.spark.snowflake" sfOptions = {"sfURL": "XXX", "sfAccount": "XX", "sfUser": "XX", "sfPassword": “xx”、“sfDatabase”:“xx”、“sfSchema”:“xx”、“sfWarehouse”:“xx”} 查询 = “从 testdb.test1.t1 中选择 *” df = spark.read.format(SNOWFLAKE_SOURCE_NAME) .options(**sfOptions).option("query", query).load()
  • 我可以使用来自同一个 ec2 实例的 snowsql 和 python 连接器连接到雪花。
  • 你检查过上面提到的 co proxy 吗?剩下的一切看起来都不错,您还需要使用 biz_pstage_work 作为 sprak 连接到 sf 的架构
  • 你能在这里发布错误堆栈跟踪吗?以下是我尝试通过 EMR shell 运行时的命令。(一些旧版本的 jar ) spark-submit --packages net.snowflake:snowflake-jdbc:3.8.0,net.snowflake:spark-snowflake_2.11:2.4.14 -spark_2.4 SparkConnPython.py pyspark --packages net.snowflake:snowflake-jdbc:3.8.0,net.snowflake:spark-snowflake_2.11:2.4.14-spark_2.4

标签: apache-spark pyspark snowflake-cloud-data-platform


【解决方案1】:

您可以使用我们的 SnowCD 工具来检查连接诊断。这与网络问题有关。 https://docs.snowflake.com/en/user-guide/snowcd.html

以下是我尝试通过 EMR shell 运行时的命令。

pyspark --packages net.snowflake:snowflake-jdbc:3.6.27,net.snowflake:spark-snowflake_2.12:2.4.14-spark_2.4

spark-submit --packages net.snowflake:snowflake-jdbc:3.8.0,net.snowflake:spark-snowflake_2.11:2.4.14-spark_2.4 SparkConnPythonWithCert.py

Spark-shell --packages net.snowflake:snowflake-jdbc:3.8.0,net.snowflake:spark-snowflake_2.11:2.4.14-spark_2.4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2022-07-22
    相关资源
    最近更新 更多