Comment lire un fichier csv à partir d'un compartiment s3 à l'aide de Pandas en Python
Je suis en train de lire un fichier CSV situé dans un seau AWS S3 dans la mémoire comme un des pandas dataframe en utilisant le code suivant:
import pandas as pd
import boto
data = pd.read_csv('s3:/example_bucket.s3-website-ap-southeast-2.amazonaws.com/data_1.csv')
Afin de donner un accès complet, j'ai mis le seau de la politique sur le compartiment S3 comme suit:
{
"Version": "2012-10-17",
"Id": "statement1",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::example_bucket"
}
]
}
Malheureusement, je reçois toujours le message d'erreur suivant en python:
boto.exception.S3ResponseError: S3ResponseError: 405 Method Not Allowed
Demandais si quelqu'un pourrait aider à expliquer comment les définir correctement les autorisations dans AWS S3 ou configurer les pandas correctement pour importer le fichier. Merci!
Ne devrait-il pas être une double barre oblique après le s3?
oui, vous avez raison, il devrait y être. J'ai aussi dû changer l'emplacement du seau et fichier: tripData = pd.read_csv('htps://s3-ap-sud-est-2.amazonaws.com/example_bucket/données.csv'). et j'ai eu à mettre à jour les autorisations sur le fichier individuel. mais il fonctionne maintenant. des acclamations.
S'il vous plaît ajouter votre solution comme une Réponse à l'aide d'autres Stackoverflow utilisateurs.
Lors de l'utilisation de
oui, vous avez raison, il devrait y être. J'ai aussi dû changer l'emplacement du seau et fichier: tripData = pd.read_csv('htps://s3-ap-sud-est-2.amazonaws.com/example_bucket/données.csv'). et j'ai eu à mettre à jour les autorisations sur le fichier individuel. mais il fonctionne maintenant. des acclamations.
S'il vous plaît ajouter votre solution comme une Réponse à l'aide d'autres Stackoverflow utilisateurs.
Lors de l'utilisation de
read_csv
de lire des fichiers à partir de s3, ne pandas première téléchargements localement sur le disque et charger en mémoire? Ou faut-il le flux à partir du réseau directement dans la mémoire?
OriginalL'auteur Paul_M | 2015-06-13
Vous devez vous connecter pour publier un commentaire.
À l'aide de pandas 0.20.3
merci!!!!! J'ai regardé partout pour ce
OriginalL'auteur jpobst
Vous n'avez pas besoin de pandas.. vous pouvez simplement utiliser le csv par défaut de la bibliothèque de python
espère que cela a résolu votre problème,
bonne chance!
🙂
OriginalL'auteur BigDataSaurius
J'ai finalement réalisé que vous devez également définir les autorisations sur chaque objet dans le seau afin de l'extraire à l'aide du code suivant:
Et j'ai également eu à modifier l'adresse du seau dans la maladie de parkinson.read_csv commande comme suit:
OriginalL'auteur Paul_M
Basé sur cette réponse qui a suggéré d'utiliser
smart_open
de lecture à partir de S3, c'est la façon dont je l'ai utilisé avec des Pandas:OriginalL'auteur kepler