2014-10-09 13 views
8

Ich habe R auf einer EC2-Instanz in AWS eingerichtet. Ich habe einige CSV-Dateien in einen S3-Bucket hochgeladen. Ich frage mich, ob es eine Möglichkeit gibt, auf die CSV-Dateien im S3-Bucket von R zuzugreifen.Zum Zugriff auf S3-Bucket von R

Alle Hilfe/Hinweise würden geschätzt.

+1

Ich benutze 'RAmazonS3'. 'install.packages (" RAmazonS3 ", repos =" http://www.omegahat.org/R ", type =" source ")' könnte für Sie zur Installation funktionieren. – jdharrison

+0

@jdharrison - Während ich versuche, das Paket unter Windows zu installieren, funktioniert es gut, aber wenn ich versuche, dasselbe auf der in AWS gehosteten ubuntu EC2-Instanz zu installieren, erhalte ich den folgenden Fehler bei der Installation von der R-Konsole: Abhängigkeit 'bitops' ist nicht verfügbar für das Paket 'RCurl' * Entfernen '/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.0/RCurl' Fehler: Abhängigkeiten 'RCurl', 'Digest' sind nicht verfügbar für das Paket 'RAmazonS3' * Entfernen '/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.0/RAmazonS3' – user3803555

+0

@jdharrison - und wenn Sie versuchen, das gleiche Paket von R Studio auf dem EC2 installiert zu installieren Maschine, der folgende Fehler: -checking für Perl .../usr/bin/perl Sie müssen installieren Digest :: HMAC_SHA1 Prüfung für md5sum .../usr/bin/md5sum Installieren Sie die entsprechende Software (Digest :: HMAC_SHA1) und führen Sie diese Konfiguration erneut aus. Fehler: Konfiguration fehlgeschlagen für Paket 'RAmazonS3' * Entfernen '/home/r/R/x86_64-pc-linux-gnu-library/3.0/RAmazonS3' – user3803555

Antwort

-1

Geben Sie den folgenden Befehl ein: install.packages("AWS.tools")

Von dort aus, verwenden Sie den Befehl s3.get(). Die Registerkarte Help sollte Ihnen sagen, was für Argumente in Frage kommt.

+2

AWS.tools wurde CRAN auf Wunsch des Betreuers, wer arbeitet gerade an einem Ersatzpaket namens Rawscli. – MattBagg

+0

Er arbeitet immer noch daran – nate

-2

Installieren Sie das libdigest-hmac-perl Paket;

sudo apt-get install libdigest-hmac-perl 
8

Werfen Sie einen Blick auf die cloudyr aws.s3 Paket (https://github.com/cloudyr/aws.s3), könnte es tun, was Sie brauchen. Leider (zum Zeitpunkt des Schreibens) ist dieses Paket ziemlich früh & ein wenig instabil.

Ich hatte guten Erfolg, einfach R system() Befehl verwenden, um einen Anruf an die AWS CLI. Dies ist relativ einfach zu starten, sehr robust und sehr gut unterstützt.

  1. hier Start: http://aws.amazon.com/cli/
  2. Liste Objekte mit S3 API: http://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects.html
  3. Erhalten Sie Objekte mit S3 API: http://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html

So zum Beispiel auf Befehlszeile versuchen folgende:

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 

In R kann nur etwas tun wie:

Verwandte Themen