spark submit 命令参数 --package 附加包

在编写 spark.net 应用的时候,需要连接 sql server 数据库, 使用 spark submit 运行的时候,发现提示 java.sql.SQLException: No suitable driver, 想想应该是没有对应的驱动,也就是指定的 jdbc:sqlserver:// 无法识别。

因为 spark.net 底层是直接调用java的,所以,这里需要添加 java 的 sql server 驱动库。

而从官方文档查看,可以直接附加 mvn 库,在首次运行的时候会自动下载。

从 mvn 库找到 sql server 驱动。 mvn库依赖如下。

<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>8.4.1.jre8</version>
</dependency>

spark-submit --packages 参数的写法是 groupId:artifactId:version

完整的命令:

spark-submit --packages com.microsoft.sqlserver:mssql-jdbc:8.4.1.jre8  --class org.apache.spark.deploy.dotnet.DotnetRunner --master  xxxxx 

代码参考

var spark = SparkSession.Builder().AppName("test").GetOrCreate(); 
var df = spark.Read().Option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver").Jdbc("jdbc:sqlserver://localhost;database=Northwind;user=sa;password=xxxx", "orders", new Dictionary<string,string>());

输出:

20201214170355.png

已禁用评论。