2

我知道有一个类似的问题,但它更笼统,而不是这个包的具体问题。我将 Sagemaker Jupyter 笔记本中的熊猫数据框保存到 S3 中的 csv 中,如下所示:

df.to_csv('s3://bucket/key/file.csv', index=False)

但是我收到以下错误:

NotImplementedError: Text mode not supported, use mode='wb' and manage bytes

代码或多或少是我从 S3 读取一个 csv,对其进行一些预处理,然后将其保存到 S3。我可以通过以下方式成功地从 S3 读取 csv:

df.read_csv('s3://bucket/key/file.csv')

我试图保存到 S3 的对象确实是pandas.core.frame.DataFrame

在笔记本中,我可以看到!pip show package我有 pandas 0.24.2 和 s3fs 0.1.5。

可能是什么问题呢?

4

2 回答 2

3

你能试试吗

df.to_csv("s3://bucket/key/file.csv", index=False, mode='wb')

它应该可以解决您的错误。默认模式是w,它以文本而不是字节的形式写入文件系统。s3 期望数据是字节。因此,在将数据帧作为 csv 写入文件系统时,您必须将模式指定为wb(写入字节)。

于 2020-01-31T17:58:06.723 回答
1

我刚遇到这个问题。

原因似乎是旧版本的 Pandas。跑

!pip install --upgrade pandas

在你的 Jupyter 笔记本中。

您可能拥有旧版本的 Pandas 的原因是如果您关闭然后重新启动 AWS 机器 - AWS 环境具有旧版本的 Pandas(这就是发生在我身上的事情)。这个问题是去年解决的。

于 2020-04-03T09:03:28.257 回答