我正在尝试将.RData文件加载到DSX中的R笔记本中。我已按照此笔记本中的说明(https://apsportal.ibm.com/exchange/public/entry/view/90a34943032a7fde0ced0530d976ca82)但仍无法加载我的数据。到目前为止,我已成功完成以下步骤:
data.1< - getObjectStorageFileWithCredentials_xxxxxxxxxx(“projectname”,“file.RData”)
data< - load(“file.RDA”)
当我运行此单元格时,我得到以下输出:
readChar中的警告消息(con,5L,useBytes = TRUE): “无法打开压缩文件'file.RDA',可能的原因'没有这样的文件或目录'”
readChar出错(con,5L,useBytes = TRUE):无法打开连接 回溯:
readChar(con,5L,useBytes = TRUE)
当我输入以下命令来打印数据集时:
数据
我得到以下输出:
X.html..h1.Forbidden..h1..p.Access.was.denied.to.this.resource。P ... HTML
请有人帮忙吗?
谢谢, Venky
答案 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()
我希望它有所帮助。
谢谢, 查尔斯。