将.RData文件加载到数据科学体验中

时间:2017-09-10 19:01:21

标签: r jupyter-notebook data-science-experience rnotebook

我正在尝试将.RData文件加载到DSX中的R笔记本中。我已按照此笔记本中的说明(https://apsportal.ibm.com/exchange/public/entry/view/90a34943032a7fde0ced0530d976ca82)但仍无法加载我的数据。到目前为止,我已成功完成以下步骤:

  1. 我已将数据集加载到对象存储中。
  2. 我使用“插入代码”插入了我的凭据 - > “插入凭据”按钮。这似乎按预期工作。
  3. 在下一个单元格中,我选择了Insert to code - >插入textConnection对象选项。这似乎也按预期工作。
  4. 步骤#3的输出如下:
  5. 您的数据文件已加载到textConnection对象中,您可以使用您选择的包处理数据。

    data.1< - getObjectStorageFileWithCredentials_xxxxxxxxxx(“projectname”,“file.RData”)

    1. 在此之后,由于我的文件是.RData文件,我输入以下命令:
    2. data< - load(“file.RDA”)

      当我运行此单元格时,我得到以下输出:

      readChar中的警告消息(con,5L,useBytes = TRUE): “无法打开压缩文件'file.RDA',可能的原因'没有这样的文件或目录'”

      readChar出错(con,5L,useBytes = TRUE):无法打开连接 回溯:

      1. 负载( “file.RDA”)
      2. readChar(con,5L,useBytes = TRUE)

      3. 当我输入以下命令来打印数据集时:

      4. 数据

        我得到以下输出:

        X.html..h1.Forbidden..h1..p.Access.was.denied.to.this.resource。P ... HTML

        请有人帮忙吗?

        谢谢, Venky

1 个答案:

答案 0 :(得分:0)

这是一个解决方法,因为加载无法从响应对象中读取,因为从对象存储中读取对象,只有REST api。

我尝试使用rawConnection而不是textConnection,但似乎没有帮助。

所以不要将读取对象从OS直接传递给load或readRDS函数。您可以将它写入附加的spark服务的GPFS,并从那里读取它,就像从本地读取一样。

从生成的代码中更改此行: -

    rawdata <- content(httr::GET(url = access_url, add_headers ("Content-Type" = "application/json", "X-Auth-Token" = x_subject_token)), as="raw")
rawdata

基本上不是返回文本,而是返回原始对象,然后将其作为二进制对象写入本地GPFS。

data.3 <- getObjectStorageFileWithCredentials_216c032f3f574763ae975c6a83a0d523("testObjectStorage", "sample.rdata")


writeBin(data.3,"sample.rdata")

现在使用readRDS或load进行回读。

load("sample.rdata")

查看加载的数据框。     LS()

我希望它有所帮助。

谢谢, 查尔斯。