NotImplementedError: Text mode not supported, use mode='wb' and manage bytes in s3fs
NotImplementedError: Text mode not supported, use mode='wb' and manage bytes in s3fs
我知道有一个类似的问题,但它更笼统,并不具体针对这个包。我正在将 Sagemaker Jupyter 笔记本中的 pandas 数据帧保存到 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。
可能是什么问题?
你能试试吗
df.to_csv("s3://bucket/key/file.csv", index=False, mode='wb')
它应该可以解决您的错误。默认模式是 w,它以文本而不是字节的形式写入文件系统。 s3 期望数据为字节。因此,在将数据帧作为 csv 写入文件系统时,您必须将模式指定为 wb(write bytes)。
我刚遇到这个问题。
原因似乎是 Pandas 的旧版本。 运行
!pip install --upgrade pandas
在你的 Jupyter Notebook 中。
您可能拥有旧版本 Pandas 的原因是,如果您关闭然后重新启动您的 AWS 机器 - AWS 环境具有旧版本的 Pandas(这就是我遇到的情况).这个问题是 fixed last year。
我知道有一个类似的问题,但它更笼统,并不具体针对这个包。我正在将 Sagemaker Jupyter 笔记本中的 pandas 数据帧保存到 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。
可能是什么问题?
你能试试吗
df.to_csv("s3://bucket/key/file.csv", index=False, mode='wb')
它应该可以解决您的错误。默认模式是 w,它以文本而不是字节的形式写入文件系统。 s3 期望数据为字节。因此,在将数据帧作为 csv 写入文件系统时,您必须将模式指定为 wb(write bytes)。
我刚遇到这个问题。
原因似乎是 Pandas 的旧版本。 运行
!pip install --upgrade pandas
在你的 Jupyter Notebook 中。
您可能拥有旧版本 Pandas 的原因是,如果您关闭然后重新启动您的 AWS 机器 - AWS 环境具有旧版本的 Pandas(这就是我遇到的情况).这个问题是 fixed last year。