在AWS SageMaker中加载S3存储桶数据

时间:2019-03-15 12:53:39

标签: amazon-web-services amazon-s3 amazon-sagemaker

与以下问题有关,但我仍在努力:

  

Load S3 Data into AWS SageMaker Notebook

我正试图从本地S3存储桶(其名称中包含“ sagemaker”。)中加载镶木地板文件。

我正在尝试使用两种约定(文件的对象URL和通常看到的)访问文件:

pf1 = ParquetFile("https://s3.amazonaws.com/sagemaker-us-east-1-716296694085/data/t_spp_vcen_cons_sales_fact-part-1.parquet")
pf1 = ParquetFile("s3://sagemaker-us-east-1-716296694085/data/t_spp_vcen_cons_sales_fact-part-1.parquet")
df1 = pf1.to_pandas()

它显示FileNotFoundError,但文件在那里。 有趣的是,当我创建模型并使用BOTO时,我实际上能够“写入”相同的存储桶:

buf = io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, np.array(train_X).astype('float32'), np.array(train_y).astype('float32'))
buf.seek(0)
key = 'linear_train.data'
prefix = "Sales_867_ts"
boto3.resource('s3').Bucket(bucket_write).Object(os.path.join(prefix, 'train', key)).upload_fileobj(buf)
s3_train_data = 's3://{}/{}/train/{}'.format(bucket_write, prefix, key)
print('uploaded training data location: {}'.format(s3_train_data))

所以有几个新手问题:

  • 我还需要BOTO来读取文件吗?如果是,我该怎么做?

  • 我是否需要某种方式来修改我的IAM角色,而无需使用“ boto”命令来做到这一点?

  • 当我将数据移至Jupyter时,我实际上没有直接读取数据的问题。那么,这些数据到底存储在哪里?

pf1 = ParquetFile("./Sales_867_ts/inputData/t_spp_vcen_cons_sales_fact-part-1.parquet")

1 个答案:

答案 0 :(得分:0)

只需导入s3fs,然后df = pd.read_csv。您必须通过

在s3fs库上安装conda