从 s3 读取文件时 joblib.load 出错

2024-03-17

当尝试从 s3 读取文件时joblib.load()我收到错误ValueError: embedded null byte当尝试读取文件时。

这些文件是由 joblib 创建的,并且可以从本地副本(在上传到 s3 之前在本地制作)成功加载,因此错误可能出在 S3 的存储和检索协议中。

最小代码:

####Imports (AWS credentials assumed)
import boto3
from sklearn.externals import joblib


s3 = boto3.resource('s3')
bucket_str = "my-aws-bucket"
bucket_key = "some-pseudo/folder-set/my-filename.joblib"
joblib.loads(s3.Bucket(bucket_str).Object(bucket_key).get()['Body'].read())

以下代码在输入之前在内存中重建文件的本地副本joblib.load(),从而实现成功加载。

from io import BytesIO
import boto3
from sklearn.externals import joblib

s3 = boto3.resource('s3')
bucket_str = "my-aws-bucket"
bucket_key = "some-pseudo/folder-set/my-filename.joblib"
with BytesIO() as data:
    s3.Bucket(bucket_str).download_fileobj(bucket_key, data)
    data.seek(0)    # move back to the beginning after writing
    df = joblib.load(data)

我假设,但不确定,boto3 分块下载文件的方式中的某些内容会创建一个破坏 joblib 的空字节,并且 BytesIO 在让joblib.load()查看数据流。

附言。在这种方法中,文件永远不会接触本地磁盘,这在某些情况下很有用(例如,具有大 RAM 但磁盘空间很小的节点......)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 s3 读取文件时 joblib.load 出错 的相关文章

随机推荐

  • \r 和 \n 之间的区别

    有什么区别 r and n在正则表达式中 有人可以用例子解释一下吗 r是 回车 CR ASCII 字符 13 n是 换行 LF ASCII 字符 10 过去 每行末尾都有两个 ASCII 字符来告诉打印机要做什么 CR 会告诉打印机返回到纸
  • 在 Eclipse 中更改 Tomcat 服务器的超时

    当我尝试运行 Tomcat 时 我收到一条消息 Server Tomcat v6 0 Server at localhost was unable to start within 45 seconds If the server requi
  • 如何在 JavaScript 中捕获“History.Back”事件?

    是否可以在 JavaScript 中捕获 History Back 事件 我想抓住history back 事件和注销用户 P s 有一些关于禁用的代码history back 但对我来说没有用 然后设置onunload event 您可以
  • 使 jqGrid 在网络浏览器上响应的方法

    我是 jqGrid 的新手 我需要在调整网络浏览器窗口大小时调整网格大小 我已经申请autowidth true shrinkToFit true 在网格中 但这不起作用 CSS的设定width 100 是唯一的一种实现 但对于 jqGri
  • Android:TextInputLayout 总是从顶部留出一些空间

    我有这样的布局
  • PHP 在字符串中搜索电子邮件地址

    您好 我正在尝试搜索一个字符串以查看它是否包含电子邮件地址 然后返回它 典型的电子邮件验证器表达式是 eregi a z0 9 a z0 9 a z0 9 a z0 9 a z 2 3 email 但是 如果它在字符串中 我将如何搜索 例如
  • OpenCart .twig 文件未显示更改

    我一直在尝试更改product catalog twig 文件 以删除一些不必要的按钮 例如 添加到愿望清单 和 比较产品 选项 这些按钮对于我尝试创建的商店来说毫无用处 在主题编辑器上 我已从 twig 文件中删除了两个按钮 但更改并未显
  • 通过链接打开 Android 应用程序

    我正在尝试创建一个可以通过电子邮件发送的链接 当在 Android 设备上打开我的应用程序时 如果设备上没有该应用程序 它将前往 Google 商店并搜索该应用程序 你可以这样做 在清单中创建一个过滤器来处理某些 URL 例如
  • Nodemailer 不会向 Outlook.office365 帐户发送电子邮件

    我正在尝试从 gmail 帐户发送电子邮件到接收者 即我的大学电子邮件 Outlook office365 它适用于gmail到gmail gmail到outlook live gmail到yahoo import as nodemaile
  • 从资产颤振中打开pdf文件

    我正在尝试使用 flutter fullpdfview 1 0 12 打开 PDF 文件 我的 PDF 文件位于 asset 文件夹下 但不知何故我收到错误 无法找到文件 我尝试了几个选项 但没有一个有效 并且都返回相同的错误 以下是我尝试
  • 为什么这个猪拉丁词转换代码不起作用

    Pig 拉丁语 单词转换 include
  • 如何使用 MVC RAZOR 将 DataTable 绑定到 DropDownList?

    我的模型返回数据表的集合 如下所示 如何使用 MVC RAZOR 将 DataTable 绑定到 DropDownList 对于每个数据表 我想为其创建一个表行和一个下拉列表 我尝试了下面的代码 foreach DataTable data
  • QHash存储大量数据

    我有 10 000 000 个 struct int int int int 类型的条目 当我使用它们存储时QHash http doc qt io qt 5 qhash html or QMap http doc qt io qt 5 q
  • 使用 Dojo 设置 元素的值/文本

    我正在开发一个秒表应用程序 试图学习 Dojo Toolkit 因此 首先 我需要将小时 分钟 秒和毫秒设置为 0 I tried dojo byId hours value 00 还尝试过 domAttr set hours 00 它不起
  • 使用 webpack 编译 less

    我想添加一个非常基本的 less 文件到我的project https github com pbrianmackey uiexperiment在 github 上 参见这次提交 https github com pbrianmackey
  • 如何使用expressJS提供ReactJS静态文件?

    问题 我已成功提供 React 应用程序的 index html 文件 但是index js取代
  • 从存在缺失值的现有列创建新列

    我正在尝试根据这两列创建一个新列 假设我想创建一个新列 z 当 y 不丢失时 它应该是 y 的值 当 y 确实丢失时 它应该是 x 的值 所以在这种情况下 我期望 z 是 1 8 10 8 x y 0 1 NaN 1 2 8 2 4 10
  • Sympy:化简平方根

    Sympy 似乎无法简化涉及变量平方的平方根的表达式 In 28 a x 2 In 29 b a 1 2 In 30 b Out 30 0 5 2 x In 31 b simplify Out 31 0 5 2 x 我无法将此与其他变体一起
  • 使用 PHP 7.2.4 的 Ubuntu 16.04 上缺少 PDO 驱动程序

    我想在Kubuntu 16 04上尝试最新版本的PHP 从那时起 我似乎无法将pdo与mysql一起使用 当我启动 php 时 出现以下警告 PHP Warning PHP Startup Unable to load dynamic li
  • 从 s3 读取文件时 joblib.load 出错

    当尝试从 s3 读取文件时joblib load 我收到错误ValueError embedded null byte当尝试读取文件时 这些文件是由 joblib 创建的 并且可以从本地副本 在上传到 s3 之前在本地制作 成功加载 因此错