spark.conf.set с SparkR - PullRequest
       89

spark.conf.set с SparkR

0 голосов
/ 14 декабря 2018

У меня есть кластер 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")
    ))

Было бы здорово, если бы один из экспертов, использующих API SparkR, мог бы помочь мне здесь.Спасибо!

РЕДАКТИРОВАТЬ: Ответ пользователя 10791349 правильный и работает.Другим решением является подключение внешнего источника данных , что является наилучшей практикой.В настоящее время это возможно только с использованием Scala или Python, но подключенный источник данных впоследствии станет доступен с помощью SparkR API.

1 Ответ

0 голосов
/ 14 декабря 2018

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"
  )
)

Помните, что многие конфигурации будут распознаваться, только если нет активного сеанса.

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