当前位置: 首页 > 知识库问答 >
问题:

从pyspark本地计算机连接到snowflake时出现Classnotfound错误

公冶才
2023-03-14

我正试图从本地机器上的Pyspark连接到雪花。

    from pyspark import SparkConf, SparkContext
    from pyspark.sql import SQLContext
    from pyspark.sql.types import *
    from pyspark import SparkConf, SparkContext

    sc = SparkContext("local", "sf_test")
    spark = SQLContext(sc)
    spark_conf = SparkConf().setMaster('local').setAppName('sf_test')

    sfOptions = {
      "sfURL" : "someaccount.some.address",
      "sfAccount" : "someaccount",
      "sfUser" : "someuser",
      "sfPassword" : "somepassword",
      "sfDatabase" : "somedb",
      "sfSchema" : "someschema",
      "sfWarehouse" : "somedw",
      "sfRole" : "somerole",
    }

SNOWFLAKE_SOURCE_NAME = "net.snowflake.spark.snowflake"
df = spark.read.format(SNOWFLAKE_SOURCE_NAME).options(**sfOptions).option("query","""select * from 
 "PRED_ORDER_DEV"."SALES"."V_PosAnalysis" pos 
    ORDER BY pos."SAPAccountNumber", pos."SAPMaterialNumber" """).load()
pyspark --packages net.snowflake:snowflake-jdbc:3.11.1,net.snowflake:spark-snowflake_2.11:2.5.7-spark_2.4
CLASSPATH = C:\Program Files\Java\jre1.8.0_241\bin;C:\snowflake_jar

我希望能够连接到雪花和PySpark读取数据。任何帮助都将不胜感激!

共有1个答案

容远
2023-03-14

要运行pyspark应用程序,可以使用spark-submit并在--packages选项下传递JAR。我假设您希望运行客户机模式,因此将其传递给--deploy-mode选项,最后添加pyspark程序的名称。

如下所示:

spark-submit --packages net.snowflake:snowflake-jdbc:3.11.1,net.snowflake:spark-snowflake_2.11:2.5.7-spark_2.4 --deploy-mode client spark-snowflake.py
 类似资料:
  • 问题内容: 我在本地计算机上使用docker设置了Single Node Basic Kafka Deployment,如Confluent Kafka文档中所述(步骤2-3)。 另外,我还公开了zookeeper的端口2181和kafka的端口9092,以便能够从在本地计算机上运行的Java客户端连接到它们: 问题:当我尝试从主机连接到kafka时,连接失败,因为它无法解析地址:kafka:90

  • 我在AWS中设置了一个新的MariaDB RDS实例,并向安全组添加了入站和出站规则,但当我试图通过mysql控制台连接到RDSendpoint时,总是会出现以下错误: 错误2003(HY000):无法连接到'db-xxxxxxx.eu-central-1.rds.amazonaws.com'上的MySQL服务器(10060“未知错误”) 我是AWS的新手。

  • 使用Database ricks笔记本,我能够从Database ricks连接到“雪花”,并使用“scala”将内容写入Snowflake中的表,但使用“python”无法正常工作。 我在数据砖中添加了这两个库,这有助于在数据砖和雪花之间建立联系:和。 我的目标是使用Databricks(用于机器学习- Spark)并在Databricks和雪花之间来回移动数据。 下面是我尝试将数据帧的内容写入

  • 问题内容: 所以我有一个Nginx在docker容器中运行,我有一个mysql在本地主机上运行,​​我想从我的Nginx内部连接到MySql。MySql在localhost上运行,并且没有将端口暴露给外界,因此它绑定在localhost上,而不绑定在计算机的IP地址上。 有什么方法可以从此Docker容器中连接到此MySql或localhost上的任何其他程序吗? 此问题与“如何从Docker容器

  • 我们在使用Cosmos DB触发器本地调试Azure函数V1时遇到了一个奇怪的问题。当应用程序启动时,它会等待几分钟,然后抛出一个异常“服务当前不可用”: 当我在家里运行时,同样的应用程序工作得很好。在部署到Azure上时,它也可以完美地运行。 另外,用Azure Functions V2实现的类似应用程序也可以在有问题的机器上运行。 引起问题的机器位于公司网络中。我们使用真正的连接字符串,而不是

  • 我一直在尝试将我的EMR5.11.0集群上的Spark 2.2.1连接到我们的Redshift商店。 我遵循的方法是- 谢了!