spark.conf.set с SparkR
У меня есть кластер Databricks, работающий в Azure, и я хочу читать / записывать данные из хранилища озера данных Azure, используя SparkR
/ sparklyr
, Поэтому я настроил два ресурса.
Теперь я должен предоставить среде Spark необходимые конфигурации для аутентификации в хранилище озера данных.
Установка конфигов с помощью PySpark API
работает:
spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("dfs.adls.oauth2.client.id", "****")
spark.conf.set("dfs.adls.oauth2.credential", "****")
spark.conf.set("dfs.adls.oauth2.refresh.url", "https://login.microsoftonline.com/****/oauth2/token")
В конце SparkR
/ sparklyr
должен быть использован. Здесь я не мог понять, где установить spark.conf.set
, Я бы предположил что-то вроде:
sparkR.session(
sparkConfig = list(spark.driver.memory = "2g",
spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential"),
spark.conf.set("dfs.adls.oauth2.client.id", "****"),
spark.conf.set("dfs.adls.oauth2.credential", "****"),
spark.conf.set("dfs.adls.oauth2.refresh.url", "https://login.microsoftonline.com/****/oauth2/token")
))
Было бы здорово, если бы один из экспертов, использующий SparkR
API может помочь мне здесь. Спасибо!
РЕДАКТИРОВАТЬ: Ответ пользователя 10791349 является правильным, и он работает. Другим решением является подключение внешнего источника данных, что является наилучшей практикой. В настоящее время это возможно только с использованием Scala или Python, но подключенный источник данных впоследствии будет доступен с помощью SparkR API.
1 ответ
sparkConfig
должно быть
именованный список конфигурации Spark для установки на рабочих узлах.
Таким образом, правильный формат
sparkR.session(
... # All other options
sparkConfig = list(
spark.driver.memory = "2g",
dfs.adls.oauth2.access.token.provider.type = "ClientCredential",
dfs.adls.oauth2.client.id = "****",
dfs.adls.oauth2.credential = "****",
dfs.adls.oauth2.refresh.url ="https://login.microsoftonline.com/****/oauth2/token"
)
)
Помните, что многие настройки будут распознаны, только если нет активного сеанса.