java - 如何通过sparkSession提交多个jar给worker?

标签 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 个 jar,那么我不知道如何提交? config() 方法只接受一个键参数('spark.jars')和一个值参数(jar 路径)。如果使用 SparkConfig().setJars(),我知道如何发送多个 jar,但我不知道如何使用,因为我需要使用 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();

I know how to send multiple jars if used SparkConfig().setJars() but not of my use since I need to use SparkSession.

SparkConf is still applicable for SparkSession :

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

关于java - 如何通过sparkSession提交多个jar给worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46076771/

相关文章:

hadoop - hadoop 配置中 mapred.tasktracker.tasks.maximum 的默认值是多少

hadoop - 没有密码的 SSH 连接不起作用

python - spark.read.option() 中的可用选项

scala - 如何使用自定义键值名称将映射列转换为结构类型?

java - HttpClient类AbstractConnPool变得太大,如何解决?

java - 每天将数百万条记录从 sql server 移动到 oracle

hadoop - 映射减少作业 : Protobuf related error

java - 反转操作

java - 如何修复 'android.os.NetworkOnMainThreadException' ?

scala - 将新数据 append 到分区 parquet 文件