我已经在群集上部署了一些火花。我使用spark-submit
命令提交spark作业,然后按照我的项目jar。
我的项目中有很多Spak Conf
。 Conf将根据我正在运行的课程来决定,但每次我运行spark工作时都会收到此警告
7/01/09 07:32:51 WARN SparkContext:使用现有的SparkContext,其中一些 配置可能不会生效。
查询这是否意味着SparkContext已经存在并且我的工作就是选择它。 查询为什么没有进行配置
代码
private val conf = new SparkConf()
.setAppName("ELSSIE_Ingest_Cassandra")
.setMaster(sparkIp)
.set("spark.sql.shuffle.partitions", "8")
.set("spark.cassandra.connection.host", cassandraIp)
.set("spark.sql.crossJoin.enabled", "true")
object SparkJob extends Enumeration {
val Program1, Program2, Program3, Program4, Program5 = Value
}
object ElssieCoreContext {
def getSparkSession(sparkJob: SparkJob.Value = SparkJob.RnfIngest): SparkSession = {
val sparkSession = sparkJob match {
case SparkJob.Program1 => {
val updatedConf = conf.set("spark.cassandra.output.batch.size.bytes", "2048").set("spark.sql.broadcastTimeout", "2000")
SparkSession.builder().config(updatedConf).getOrCreate()
}
case SparkJob.Program2 => {
val updatedConf = conf.set("spark.sql.broadcastTimeout", "2000")
SparkSession.builder().config(updatedConf).getOrCreate()
}
}
}
在Program1.scala中,我打电话给
val spark = ElssieCoreContext.getSparkSession() val sc = spark.sparkContext