1
我正在尝试从aws S3和R中提取文档。我成功地设法提取了1个文档并使用该文档创建了一个数据框。我希望能够提取多个位于eventstore/footballStats /的多个子文件夹内的文档。使用R从aws s3中提取多个json文档
CODE演示1个正在被拉出的文件。
install.packages("aws.s3", repos = c("cloudyr" = "http://cloudyr.github.io/drat")) # runs an update for aws S3
library(aws.s3)
# Set credentials for S3 ####
Sys.setenv("AWS_ACCESS_KEY_ID" = "KEY","AWS_SECRET_ACCESS_KEY" = "AccessKey")
# Extracts 1 document raw vector representation of an S3 documents ####
DataVector <-get_object("s3://eventstore/footballStats/2017-04-22/13/01/doc1.json")
我已经然后试图下面的代码来拉从文件夹和子文件夹的所有文件,但收到一个错误。
DataVector <-get_object("s3://eventstore/footballStats/2017-04-22/*")
ERROR :
chr "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error>
<Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><K"| __truncated__
是否有替代的r软件包,我应该使用?或者函数get_object()仅适用于1个文档,我应该使用aws.s3库中的另一个函数?
的文件是不是在'cloudyr'项目非常清楚,所以最好的选择可能是在同一时间获得一个对象。如果对象太多,请从桶中获取对象列表('cloudyr'提到它),然后使用'paste'在列表中迭代以为每个桶创建一个URL,然后为get_object创建一个URL。 – Drj
您无法将glob或模式传递给'get_object()'。它只会返回一个对象,因此@Drj建议使用'get_bucket()'列出所有对象,然后迭代对象键,将每个对象传递给'get_object()'。 – Thomas
谢谢@Drj。我能解决这个问题。 – Mark