если SQLContext полностью отделен от SparkContext?!
Ни SparkSession
, ни SQLContext
не отделены от SparkContext
. Оба тесно связаны с конкретным экземпляром SparkContext
. Также вам не нужно SQLContext
ни для чего, кроме устаревших приложений, при использовании Spark 2.x. Для всего остального SparkSession
предоставляет эквивалентный интерфейс.
Просто инициализировать SparkSession
val spark = SparkSession.builder().appName("myapp").getOrCreate()
и использовать его контекст для установки конфигурации Hadoop
spark.sparkContext.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "blah1")
В вашем коде настройки конфигурации на sparkContext
также будут работать. Каждое приложение Spark может иметь только один SparkContext
, и оно используется повторно при каждом вызове SparkSession.builder.getOrCreate
или даже при создании newSession
.