эквивалент addFile () для структурированной потоковой передачи - PullRequest
0 голосов
/ 06 февраля 2020

Мне нужно предоставить файл хранилища ключей как для драйвера, так и для исполнителей, чтобы сделать его доступным в настройках структурированного потокового запроса - ssl. Я использую кластер блоков данных и в настоящее время я не могу получить доступ к / dbfs / filesysem (через API локальных файлов dbfs) из-за настроек шифрования, а также не могу использовать внешнее хранилище. Мне нужно иметь возможность выставить этот файл в любом случае как временное решение.

Соответствующая часть настроек запроса структурированной потоковой передачи выглядит следующим образом:

var streamingInputDF = 
  spark.readStream
    .option("kafka.ssl.keystore.location", "mykeystore.jks")

Я могу прочитать файл из DBFS в dataframe используя dbfs spark API, но мне нужно иметь возможность передавать местоположение файловой системы в качестве параметра (в этом случае наличие его в датафрейме не поможет).

Используя dbutils, я могу скопировать файл из dbfs в драйвер , но я не знаю, как я могу предоставить файлы рабочим.

Я пытался использовать:

sc.addFile("mykeystore.jks") // this line works as I have this file locally on the driver

    var streamingInputDF = 
      spark.readStream
        .option("kafka.ssl.keystore.location", org.apache.spark.SparkFiles.get("myketstore.jks"))

Но, получая ошибку «Нет такого файла или каталога». Я думаю, из-за другого контекста. Я ищу способ раскрыть файл водителю и работникам.

...