如何通过sparkSession向工人提交多个罐子?

时间:2017-09-06 13:38:10

标签: java hadoop apache-spark

我正在使用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()方法只接受键中的一个参数(' spark.jars')和一个值(jar的路径)。我知道如果使用SparkConfig()。setJars()而不是我的使用,如何发送多个jar,因为我需要使用SparkSession。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

正如spark submit add multiple jars in classpathPassing 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();
  

我知道如果使用SparkConfig()。setJars()而不是我的使用,如何发送多个jar,因为我需要使用SparkSession。

SparkConf is still applicable for SparkSession

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