我正在使用AWS R studio从S3读取35 GB的csv文件并执行分析。我选择一台带有64 GB内存的m4.4xlarge的机器,但在执行任何分析之前,我在读取数据时仍然收到以下消息:"错误:无法分配大小为33.0 Gb"的向量。我使用的代码是:
library("aws.s3")
Sys.setenv("AWS_ACCESS_KEY_ID" = "xxxxxxx",
"AWS_SECRET_ACCESS_KEY" = "yyyyyyy")
obj <-get_object("s3://xxx/yyy.csv")
当我使用以下代码时,
aws.s3::s3read_using(read.csv, object=“"s3://xxx/yyyy.csv”)
错误消息变为:
我收到的错误信息如下:
Error in curl::curl_fetch_disk(url, x$path, handle = handle) :
Failed writing body (4400 != 16360)
我不熟悉Linux,而且我使用了Louis Aslett的AMI(http://www.louisaslett.com/RStudio_AMI/)。有什么设置我应该改变吗?谢谢!
我怀疑这个问题与以下两个问题有关,但没有明确的答案。
Reading large JSON files from S3 in RStudio EC2 instance (Louis Aslett's AMI)
Trouble Uploading Large Files to RStudio using Louis Aslett's AMI on EC2
答案 0 :(得分:0)
在相同的AMI中,我克服了R中的一个非常相似的问题。我的问题是,尽管AWS的默认主目录大小小于8-10GB,无论您的实例大小如何。由于试图上传到家里,所以没有足够的空间。从个人经验来看,使用相同的AMI读取数据,听起来像是同样的问题。
如果您上传到实例上的其他驱动器,则可以解决此问题。由于Louis Aslett Rstudio AMI基于8-10GB的空间,因此您必须在该目录(主目录)之外设置工作目录。从Rstudio服务器界面上看不出来直观。
我相信您问题的解决方案与读取数据的方法无关。问题是主目录小于10GB,您正在尝试读入(如果您是Windows用户,我认为这很有可能,因为您不希望60GB的计算机在默认目录中只有10GB)。 。我建议您看一下其他目录(例如,在Rstudio中的RHS的Rstudio目录选择框中,或者在Linux命令行中的df命令中,将目录抬高一些。然后将setwd()放在另一个目录(例如xda或具有足够空间的任何目录)中,然后尝试再次读入。
我可能没有像主持人那样写这个答案,但是我已经克服了一个类似的问题,并且这个问题已经一年没有答案了,所以我希望它能有所帮助(哦,我没有足够的“点”来写评论,所以它必须是答案)