quilt data 获取数据

从数据包获取数据
本节中的示例使用 aleksey/hurdat 数据包:

import quilt3
p = quilt3.Package.browse('aleksey/hurdat', 's3://quilt-example')
p
Loading manifest: 100%|██████████| 7/7 [00:00<00:00, 8393.40entries/s]





(remote Package)
 └─.gitignore
 └─.quiltignore
 └─notebooks/
   └─QuickStart.ipynb
 └─quilt_summarize.json
 └─requirements.txt
 └─scripts/
   └─build.py

通过使用字典键选择来切片数据包树:

# 返回 PackageEntry("requirements.txt")
p["requirements.txt"]
PackageEntry('s3://quilt-example/aleksey/hurdat/requirements.txt?versionId=bQtxuZlaylNVHi0GmxkSMofT5qXJvP95')

# 返回 (remote Package)
p["notebooks"]
(remote Package)
 └─QuickStart.ipynb

对数据包目录进行切片会返回根目录为该子目录的另一个数据包。对数据包条目进行切片会返回单个 PackageEntry 对象。

将数据包数据下载到磁盘

要将数据包目录中的一部分文件下载到指定的目标 dest,使用 fetch 方法:

# 下载子文件夹
p["notebooks"].fetch()

# 下载单个文件
p["notebooks"]["QuickStart.ipynb"].fetch()

# 下载全部内容
p.fetch()
Copying objects: 100%|██████████| 36.7k/36.7k [00:01<00:00, 22.7kB/s]
100%|██████████| 36.7k/36.7k [00:01<00:00, 24.1kB/s]
Copying objects: 100%|██████████| 39.9k/39.9k [00:02<00:00, 16.5kB/s]

(local Package)
 └─.gitignore
 └─.quiltignore
 └─notebooks/
   └─QuickStart.ipynb
 └─quilt_summarize.json
 └─requirements.txt
 └─scripts/
   └─build.py

fetch 方法默认将文件下载到当前目录,但您也可以指定替代路径:

p["notebooks"]["QuickStart.ipynb"].fetch("./references/")
100%|██████████| 36.7k/36.7k [00:01<00:00, 22.5kB/s]

PackageEntry('file:///Users/gregezema/Documents/programs/quilt/docs/Walkthrough/references/')

将数据直接下载到内存中

或者,您可以直接将数据下载到内存中:

p["quilt_summarize.json"].deserialize()
['notebooks/QuickStart.ipynb']

要对数据应用自定义反序列化器,请将函数作为参数传递给 deserialize 函数。例如,要使用 yaml.safe_load 加载一个假设的 yaml 文件:

import yaml
# 返回一个字典
p["quilt_summarize.json"].deserialize(yaml.safe_load)
['notebooks/QuickStart.ipynb']

反序列化器应该接受字节流作为输入。

获取条目位置

您可以使用 get 方法获取数据包条目或目录的路径:

# 返回 /path/to/pkg/root/notebooks/QuickStart.ipynb
p["notebooks"]["QuickStart.ipynb"].get()
's3://quilt-example/aleksey/hurdat/notebooks/QuickStart.ipynb?versionId=PH.9gsCH6LM9RQIqsy1U4X6H6s.VoQ_B'

获取元数据

可以使用 meta 属性获取元数据:

# 获取条目元数据
p["notebooks"]["QuickStart.ipynb"].meta

# 获取目录元数据
p["notebooks"].meta

# 获取数据包元数据
p.meta

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值