从 R 访问 S3 存储桶

8

我已经在AWS的EC2实例上安装了R。

我已经将几个csv文件上传到S3存储桶中。

我想知道是否有一种方法可以从R中访问S3存储桶中的csv文件。

如果有任何帮助或者指引,将不胜感激。


1
我使用 RAmazonS3。你可以尝试使用 install.packages("RAmazonS3", repos = "http://www.omegahat.org/R", type = "source") 进行安装。 - jdharrison
@jdharrison - 当我尝试在Windows上安装软件包时,一切正常,但当我尝试在托管在AWS上的ubuntu EC2实例上安装相同的软件包时,在R控制台中尝试安装时出现以下错误:ERROR: dependency ‘bitops’ is not available for package ‘RCurl’
  • removing ‘/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.0/RCurl’ ERROR: dependencies ‘RCurl’, ‘digest’ are not available for package ‘RAmazonS3’
  • removing ‘/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.0/RAmazonS3’
- user3803555
@jdharrison - 当尝试从安装在EC2机器上的R studio安装相同的软件包时,出现以下错误:-检查perl... /usr/bin/perl 您必须安装Digest::HMAC_SHA1相关软件,然后再次运行此配置。 错误:无法为软件包‘RAmazonS3’进行配置
  • 删除‘/home/r/R/x86_64-pc-linux-gnu-library/3.0/RAmazonS3’
- user3803555
3个回答

8
请查看 cloudyr 的 aws.s3 包(https://github.com/cloudyr/aws.s3),它可能会满足您的需求。不幸的是(截至撰写本文时),该软件包处于早期阶段且有点不稳定。
我已经成功地使用 R 的 system() 命令来调用 AWS CLI,这相对容易上手,非常健壮,而且得到了很好的支持。
以下是操作步骤:
1. 从这里开始:http://aws.amazon.com/cli/ 2. 使用 S3 API 列出对象:http://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects.html 3. 使用 S3 API 获取对象:http://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html 例如,在命令行上尝试以下操作:
pip install awscli
aws configure
aws s3 help
aws s3api list-objects --bucket some-bucket --query 'Contents[].{Key: Key}'
aws s3api get-object --bucket some-bucket --key some_file.csv new_file_name.csv

在R中,可以像这样做:
system("aws s3api list-objects --bucket some-bucket --query 'Contents[].{Key: Key}' > my_bucket.json")

0
输入以下命令:install.packages("AWS.tools") 然后,使用s3.get()命令。在帮助选项卡中,可以查看参数的具体内容。

2
AWS.tools已经被维护者的请求存档在CRAN上,现在维护者正在开发一个名为Rawscli的替代软件包。 - MattBagg

-2

安装libdigest-hmac-perl软件包;

sudo apt-get install libdigest-hmac-perl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接