R-Studio IDE на Databricks

#r #databricks #azure-databricks

#r #databricks #azure-databricks

Вопрос:

Я пытаюсь импортировать набор данных из моей файловой системы Databricks (DBFS) в R-Studio, который работает в кластере Databricks; и я сталкиваюсь с этой проблемой ниже.

 > sparkDF <- read.df(source = "parquet", path = "/tmp/lrs.parquet", header="true", inferSchema = "true")`
  

Ошибка: ошибка при загрузке: java.lang.Исключение SecurityException: нет токена для
авторизации участника
в com.databricks.sql.acl.ReflectionBackedAclClient$$anonfun$com$databricks$sql$acl$ReflectionBackedAclClient$$token$2.apply(ReflectionBackedAclClient.scala:137)
в com.databricks.sql.acl.ReflectionBackedAclClient$$anonfun$com$databricks$sql$acl$ReflectionBackedAclClient$$token$2.apply(ReflectionBackedAclClient.scala:137 )
в скала.Option.getOrElse(Option.scala:121)
в com.databricks.sql.acl.ReflectionBackedAclClient.com$databricks$sql$acl$ReflectionBackedAclClient$$token(ReflectionBackedAclClient.scala:137)
в com.databricks.sql.acl.ReflectionBackedAclClient$$anonfun$getValidPermissions$1.apply(ReflectionBackedAclClient.scala:86)
в com.databricks.sql.acl.ReflectionBackedAclClient$$anonfun$getValidPermissions$1.apply(ReflectionBackedAclClient.scala:81)
в com.databricks.sql.acl.ReflectionBackedAclClient.stripReflectionException(ReflectionBackedAclClient.scala:73)
в com.databricks.sql.acl.Refle

Расположение DBFS правильное, для этого приветствуются любые предложения или блоги!

Комментарии:

1. Ошибка предполагает отсутствие аутентификации. Это будет зависеть от вашего кластера Databricks и настроек сервера R Studio (пожалуйста, смотрите здесь: docs.databricks.com/spark/latest/sparkr/rstudio.html )

2. Спасибо за ваш ответ. Я прочитал ссылку, и там упомянуто множество информации, но ничего не связано с импортом набора данных из Azure Data lake или из файловой системы Databricks!

3.Ssry, не могу предоставить конкретные настройки для вашей системы, но, возможно, этот пример поможет — вот как я аутентифицирую доступ к озеру данных Gen 1: spark.conf.set("dfs.adls.oauth2.access.token.provider.type", "ClientCredential") spark.conf.set("dfs.adls.oauth2.client.id", _my client id_) spark.conf.set("dfs.adls.oauth2.credential", _my credentials_) spark.conf.set("dfs.adls.oauth2.refresh.url", _my provider_) как вы аутентифицируетесь, когда применяете операции непосредственно в Databricks? Примените ту же конфигурацию к конфигурации RS.

4. Применяя операции к блокам данных, я включаю проход через wile, создавая кластер. Затем я могу напрямую получить доступ к озеру данных, указав ссылку на данные в команде.

Ответ №1:

Синтаксис для чтения данных с помощью R в Databricks зависит от того, читаете ли вы в Spark или в R в драйвере. Смотрите ниже:

 # reading into Spark
sparkDF <- read.df(source = "parquet",
                   path = "dbfs:/tmp/lrs.parquet")


# reading into R
r_df <- read.csv("/dbfs/tmp/lrs.csv")
  

При чтении в Spark используйте dbfs:/ префикс, при чтении в R используйте напрямую /dbfs/ .

Ответ №2:

Мы должны использовать dbfs перед путем к каталогу.

Например: /dbfs/tmp/lrs.parquet