Доступ к файлам CSV с использованием подстановочного знака из S3 с использованием Python - PullRequest
0 голосов
/ 02 апреля 2019

Необходим доступ к определенным файлам CSV из S3 с использованием Wildcard с использованием Python

Пример: ansh-commercial-datalake-prod / dqm / validation-summary / Brand_Validation / *. CSV

ansh-коммерческое-дата-продукт-ведро Имя

--This is what I have tried so far

import pandasql
from pandasql import sqldf
import boto
import pandas as pd

data = pd.read_csv('s3://ansh-us-commercial-datalake-prod/dqm/
validation-summary/Brand_validation/abc.csv')
print(data.head()) --This is working

but what I need is something like

data = pd.read_csv('s3://ansh-us-commercial-datalake-prod/dqm/
validation-summary/Brand_validation/*.csv')
print(data.head())  --This is not working working

1 Ответ

0 голосов
/ 02 апреля 2019

Вы не сможете найти подстановочный знак в методе панд read_csv (для этого требуется один путь к файлу или URL ). Что вы можете сделать, это использовать boto3, чтобы вывести список всех CSV-файлов в сегменте, затем открыть их один за другим, а затем объединить их в один фрейм данных.

Пример

from boto.s3.connection import S3Connection

bucket = 'ansh-us-commercial-datalake-prod/dqm/validation-summary/Brand_validation'
conn = S3Connection('<access-key>','<secret-access-key>')
bucket = conn.get_bucket(bucket)
datal = []
for key in [ x for x in bucket.list() if x.endswith('.csv') ]:
    datal.append(pd.read_csv('s3://{bucket}/{key}'.format(bucket=bucket, key=key.name.encode('utf-8'))))

data = pd.concat(datal)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...