Мне нужно предоставить файл хранилища ключей как для драйвера, так и для исполнителей, чтобы сделать его доступным в настройках структурированного потокового запроса - 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"))
Но, получая ошибку «Нет такого файла или каталога». Я думаю, из-за другого контекста. Я ищу способ раскрыть файл водителю и работникам.