Ошибка памяти при попытке прочитать CSV на AWS - PullRequest
0 голосов
/ 03 июня 2018

Когда я запускаю следующий код, я получаю сообщение об ошибке:

import os
import boto3
import pandas as pd
import sys

if sys.version_info[0] < 3: 
    from StringIO import StringIO # Python 2.x
else:
    from io import StringIO # Python 3.x

# get your credentials from environment variables
aws_id = 'XX'
aws_secret = 'YY'

client = boto3.client('s3', aws_access_key_id=aws_id,
        aws_secret_access_key=aws_secret)

bucket_name = 'arpbhatnagar'

object_key = 'application_train.csv'
csv_obj = client.get_object(Bucket=bucket_name, Key=object_key)
body = csv_obj['Body']
csv_string = body.read().decode('utf-8')

train = pd.read_csv(StringIO(csv_string))

Я получаю следующую ошибку:

Ошибка: MemoryError Traceback (последний вызовпоследний) in () 21 csv_obj = client.get_object (Bucket = имя_карты, ключ = object_key) 22 body = csv_obj ['Body'] ---> 23 csv_string = body.read (). decode ('utf-8')24 25 train = pd.read_csv (StringIO (csv_string), low_memory = True, engine = 'python')

/ usr / lib / python2.7 / encodings / utf_8.pyc в декодировании (ввод, ошибки)14 15 def decode (вход, ошибки = 'строгие'): ---> 16 возвращают codecs.utf_8_decode (вход, ошибки, True) 17 18 класс IncrementalEncoder (codecs.IncrementalEncoder):

MemoryError:

1 Ответ

0 голосов
/ 03 июня 2018

Похоже, вам не хватает памяти при загрузке или проглатывании application_train.csv.Чтобы решить эту проблему, вы можете сначала загрузить файл на свой диск, а затем указать имя файла для Pandas:

tmp_filename = "/tmp/application_train.csv"
client.download_file(bucket_name, object_key, tmp_filename)
training_set = pd.read_csv(tmp_filename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...