我最近一直在尝试在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的datetime64类型问题。
谢谢!
答案 0 :(得分:0)
read_pickle()更喜欢完整路径,而不是运行路径的相对路径。这解决了我的问题。