AWS SageMaker pd.read_pickle()不起作用,但read_csv()起作用吗?

时间:2018-11-13 12:20:48

标签: pandas csv amazon-s3 pickle amazon-sagemaker

我最近一直在尝试在AWS SageMaker jupyter笔记本实例上训练一些模型。

在我尝试通过文件加载一些自定义数据集(REDD)之前,一切工作都很好。

我将数据帧存储在S3存储桶的Pickle(.pkl)文件中。我无法将它们读入sagemaker,因此我决定将它们转换为csv,因为这似乎可行,但遇到了问题。此数据的索引类型为datetime64,使用.to_csv()时,该索引将转换为纯文本,并且会丢失其数据结构(我需要保留此特定索引以进行正确的绘制。)

所以我决定再次尝试Pickle文件,但是我无法使其工作并且不知道为什么。

以下csv作品的代码,但由于索引问题而无法使用:

bucket = 'sagemaker-peno'
houses_dfs = {}
data_key = 'compressed_data/'
data_location = 's3://{}/{}'.format(bucket, data_key)
for file in range(6):
    houses_dfs[file+1] = pd.read_csv(data_location+'house_'+str(file+1)+'.csv', index_col='Unnamed: 0')

但是,即使使用几乎完全相同的语法,此代码也无法正常工作:

bucket = 'sagemaker-peno'
houses_dfs = {}
data_key = 'compressed_data/'
data_location = 's3://{}/{}'.format(bucket, data_key)
for file in range(6):
    houses_dfs[file+1] =  pd.read_pickle(data_location+'house_'+str(file+1)+'.pkl')

是的,它是100%正确的路径,因为csv和pkl文件存储在同一目录(compressed_data)中。

在使用Pickle方法时会抛出此错误:

FileNotFoundError: [Errno 2] No such file or directory: 's3://sagemaker-peno/compressed_data/house_1.pkl'

我希望找到一个以前处理过这个问题的人,并且可以解决read_pickle()问题,或者作为替代方法来解决csv的d​​atetime64类型问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

read_pickle()更喜欢完整路径,而不是运行路径的相对路径。这解决了我的问题。