【问题标题】:R-Studio IDE on DatabricksDatabricks 上的 R-Studio IDE
【发布时间】:2020-10-13 21:08:34
【问题描述】:

我正在尝试将数据集从我的 Databricks 文件系统 (DBFS) 导入到在 Databricks 集群上运行的 R-Studio;我在下面面临这个问题。

> 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) 在 scala.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 位置正确,欢迎提出任何建议或博客!

【问题讨论】:

  • 错误提示缺少身份验证。这将特定于您的 Databricks 集群和 R Studio Server 设置(请参阅此处:docs.databricks.com/spark/latest/sparkr/rstudio.html
  • 感谢您的回复。我阅读了链接,其中提到了大量信息,但与从 Azure 数据湖或 Databricks 文件系统导入数据集无关!
  • Ssry,无法为您的系统提供特定设置,但这个示例可能会有所帮助 - 这就是我对 Data Lake 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_)@987654326 @ 直接在 Databricks 中应用操作时如何进行身份验证?将相同的配置应用于 RS 配置。
  • 在 Databricks 上应用操作时,我在创建集群时启用了传递。然后,我可以通过在 Command 中提供 Data-Link 来直接访问数据湖。

标签: r databricks azure-databricks


【解决方案1】:

在 Databricks 上使用 R 读取数据的语法取决于您是读入 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-27
      • 2022-12-06
      • 1970-01-01
      • 2020-12-05
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多