pyspark 需要本地安装 Spark 吗?

Do pyspark need a local Spark installation?

我正在尝试使用 spark。尝试创建一个简单的 SQL 数据库连接,同时 运行 在 docker 容器中使用 Spark。

我的笔记本电脑上没有安装 Spark。仅在我的 docker 容器内。

我的笔记本电脑上有以下代码:

spark = SparkSession \
.builder \
.master("spark://localhost:7077") \  # <-- Docker container with master and worker
.appName("sparktest") \
.getOrCreate()

jdbcDF = spark.read.format("jdbc") \
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver") \
.option("url", "jdbc:sqlserver://xxx") \
.option("dbtable", "xxx") \
.option("user", "xxx") \
.option("password", "xxx").load()

我无法让它工作。 我从 Java 得到 java.sql.SQLException: No suitable driverClassNotFoundException。 我已经将文件移动到容器中,那里似乎一切正常。

我已确保 mssql jar 文件位于驱动程序和执行程序的 SPARK_CLASSPATH 上。

我是否应该在本地安装 Spark 以便在我的 docker 容器中使用 PySpark 对抗远程主机 运行ning?

它似乎在尝试在我的笔记本电脑上找到 SQL 驱动程序?

如果我 运行 从 docker 容器中使用 spark-submit 代码,一切都很好。

我试图避免走 docker 容器中托管的 jupyter 路线,但希望不必在我的 Windows 笔记本电脑上安装 Spark 并将其保存在我的 [=39] =]容器。

我以前遇到过,要找到解决方案,您可以下载 jdbc 驱动程序并通过提供 jdbc 驱动程序路径

手动设置驱动程序配置
from pyspark.context import SparkConf
conf = SparkConf()
conf.set('spark.jars', '/PATH_OF_DRIVER/driver.jar')    
conf.set('spark.executor.extraClassPath', '/PATH_OF_DRIVER/driver.jar')