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

AWS SageMaker pd.read_pickle() doesn't work but read_csv() does?

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

在我尝试通过文件加载一些自定义数据集 (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 类型问题。

提前致谢!

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