让我在此打上前缀,说我是tensorflow的新手,甚至是AWS Sagemaker的新手。
我有一些在本地Docker化的Jupyter笔记本上编写和测试的tensorflow / keras代码,它运行良好。在其中,我导入一个csv文件作为输入。
我使用Sagemaker通过conda_tensorflow_p36启动一个jupyter笔记本实例。我修改了pandas.read_csv()代码,使其指向现在位于S3存储桶中的输入文件。
所以我将这段代码改成
import pandas as pd
data = pd.read_csv("/input.csv", encoding="latin1")
对此
import pandas as pd
data = pd.read_csv("https://s3.amazonaws.com/my-sagemaker-bucket/input.csv", encoding="latin1")
我得到这个错误
AttributeError: module 'pandas' has no attribute 'core'
我不确定这是否是权限问题。我读到只要我用“ sagemaker”字符串命名存储桶,它就可以访问它。
答案 0 :(得分:1)
例如,从S3中提取数据:
import boto3
import io
import pandas as pd
# Set below parameters
bucket = '<bucket name>'
key = 'data/training/iris.csv'
endpointName = 'decision-trees'
# Pull our data from S3
s3 = boto3.client('s3')
f = s3.get_object(Bucket=bucket, Key=key)
# Make a dataframe
shape = pd.read_csv(io.BytesIO(f['Body'].read()), header=None)