我正在使用 Spark 2.2.0。下面是我用作 spark 作业的 java 代码片段:
SparkSession spark = SparkSession.builder()
.appName("MySQL Connection")
.master("spark://ip:7077")
.config("spark.jars", "/path/mysql.jar")
.getOrCreate();
Dataset dataset = spark.read().format("jdbc")
.option("url", "jdbc:mysql://ip:3306/mysql")
.option("user", "superadmin")
.option("password", "****")
.option("dbtable", "account")
.load();
上面的代码完美运行,但问题是如果我需要提交 2 个 jars 那么我不知道如何提交它? config() 方法只接受 key('spark.jars') 中的一个参数和 value(jar 的路径) 中的一个参数。如果使用 SparkConfig().setJars() 我知道如何发送多个 jars 但不是我的用途,因为我需要使用 SparkSession。
有人可以帮忙吗?
最佳答案
如 spark submit add multiple jars in classpath 和 Passing additional jars to Spark via spark-submit 中所述,您应该使用逗号分隔列表:
SparkSession spark = SparkSession.builder()
.appName("MySQL Connection")
.master("spark://ip:7077")
.config("spark.jars", "/path/mysql.jar,/path/to/another.jar")
.getOrCreate();
SparkConf
is still applicable for SparkSession
:SparkConf conf;
...
SparkSession.builder().config(conf).getOrCreate();
关于java - 如何通过sparkSession向worker提交多个jar?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46076771/