Настройка свойств Hadoop Config для Spark 2.x SQLContexts - PullRequest
0 голосов
/ 11 мая 2018

Spark 2.x здесь. Мне нужно настроить следующие конфигурации Hadoop, чтобы мой SqlContext мог общаться с S3:

sparkContext.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "blah1")
sparkContext.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "blah 2")

Однако кажется, что с 2.x SparkContext и SqlContext - это два отдельных объекта, которые построены из SparkSession:

val sparkContext = SparkSession.builder().appName("myapp").getOrCreate().sparkContext
val sqlContext = SparkSession.builder().appName("myapp").getOrCreate().sqlContext

Так как мне установить свойства sparkContext.hadoopConfiguration для SQLContext, если SQLContext полностью отделен от SparkContext?!

1 Ответ

0 голосов
/ 11 мая 2018

если 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...