从 AWS S3 读取数据

穆罕默德·萨杜吉

我有一些格式非常特殊的数据(例如,NI 系统生成的 tdms 文件),并将它们存储在 S3 存储桶中。通常,如果数据存储在我的本地计算机中,为了在 python 中读取这些数据,我会使用 npTDMS 包。但是,当这些 tdms 文件存储在 S3 存储桶中时,应该如何读取它们?一种解决方案是将数据下载到 EC2 实例,然后使用 npTDMS 包将数据读入 python。但这似乎不是一个完美的解决方案。有什么方法可以读取类似于从 S3 读取 CSV 文件的数据?

盖伊

一些 Python 包(例如 Pandas)支持直接从 S3 读取数据,因为它是最流行的数据位置。例如,在使用 Pandas 执行此操作的方法中,请参阅此问题

如果包 (npTDMS) 不支持直接从 S3 读取,则应将数据复制到笔记本实例的本地磁盘。

最简单的复制方法是在笔记本的单元中运行 AWS CLI

!aws s3 cp s3://bucket_name/path_to_your_data/ data/

该命令会将S3中“文件夹”下的所有文件复制到本地文件夹 data

您可以使用 boto3 丰富的功能过滤文件和其他特定要求来使用更细粒度的副本。例如:

s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
objs = bucket.objects.filter(Prefix='myprefix')
for obj in objs:
   obj.download_file(obj.key)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章