Watson Data Platform如何解压缩数据资产中的zip文件

时间:2018-01-16 04:26:13

标签: python-3.x anaconda boto3 data-science-experience

如何在Watson数据平台的数据资产中解压缩zip文件?

package.json

streaming_body_1是DATA ASSETS部分中的zip文件流体对象。我将zip文件上传到DATA ASSETS。

如何解压缩数据资产中的zip文件?

因为我不知道DATA ASSETS部分的确切密钥路径。

我试图在项目的jupyter笔记本中这样做。

谢谢!

1 个答案:

答案 0 :(得分:2)

当您将文件上传到项目时,它会存储在项目的指定云存储中,默认情况下应该是云对象存储。 (检查您的项目设置。)要在笔记本中处理上传的文件(只是一种数据资产,还有其他类型),您必须先从云存储中下载它,以便在内核的文件系统中访问它然后执行所需的文件操作(例如,读取,提取,......)

假设您上传了ZIP文件,您应该能够使用工具生成读取ZIP文件的代码:

  • 点击右上角的1010(数据图标)

  • 选择“插入代码”> “插入StreamingBody对象”

  • 根据需要使用StreamingBody

我跑了一个快速测试,它就像一个魅力:

...
# "Insert StreamingBody object" generated code
...
from io import BytesIO
import zipfile

zip_ref = zipfile.ZipFile(BytesIO(streaming_body_1.read()), 'r')
print zip_ref.namelist()
zip_ref.close()

编辑1:如果您的存档是压缩的tar文件,请改为使用以下代码:

...
# "Insert StreamingBody object" generated code
...
import tarfile
from io import BytesIO
tf = tarfile.open(fileobj=BytesIO(streaming_body_1.read()), mode="r:gz") 
tf.getnames()

编辑2:为了避免读取超时,您必须从

更改生成的代码
config=Config(signature_version='oauth'),

config=Config(signature_version='oauth',connect_timeout=50, read_timeout=70),

通过这些更改,我可以从您提到的回购邮件中下载并提取training_data.tar.gz