如何通过sparksession向工人提交多个jar?

enyaitl3  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(460)

我正在使用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罐然后我不知道如何提交它?config()方法只接受key('spark.jars')中的一个参数和value(jar的路径)中的一个参数。如果使用sparkconfig().setjars(),我知道如何发送多个jar,但由于我需要使用sparksession,因此我不知道该如何发送。
有人能帮忙吗?

vvppvyoh

vvppvyoh1#

如spark submit中所述,在类路径中添加多个jar,并通过spark submit将其他jar传递给spark,您应该使用逗号分隔的列表:

SparkSession spark = SparkSession.builder()
        .appName("MySQL Connection")
        .master("spark://ip:7077")
        .config("spark.jars", "/path/mysql.jar,/path/to/another.jar")
        .getOrCreate();

如果使用sparkconfig().setjars(),我知道如何发送多个jar,但由于我需要使用sparksession,因此我不知道该如何发送。 SparkConf 仍然适用于 SparkSession :

SparkConf conf;
... 
SparkSession.builder().config(conf).getOrCreate();

相关问题