我有两条运行的管道。第一个管道从 s3 读取文件并进行一些处理并更新文件。第二个管道运行多个作业,对于每个作业,我从 s3 下载文件并生成一些输出。我觉得我通过多次下载在我的第二个管道上浪费了很多时间,因为当我将它们用于多个作业时我目前不缓存这些文件。因此,鉴于此,我试图在本地缓存 s3 文件。
我做了一些研究,发现可以使用s3fs或fsspec 。到目前为止,我可以使用 s3fs 从 s3 下载并打开文件,但我不确定如何在本地缓存它。
import s3fs
import pandas as pd
FS = s3fs.S3FileSystem()
file = FS.open('s3://my-datasets/something/foo.csv')
# of = fsspec.open("filecache::s3://bucket/key", s3={'anon': True}, filecache={'cache_storage'='/tmp/files'})
df = pd.read_csv(file, sep='|', header=None)
print(df)
正如您在上面的代码中看到的,我正在从 s3 打开一个文件,然后将其读取到数据帧中。现在我想知道是否有参数或我可以传递的东西以便缓存该文件。
另一种方法当然是我可以检查文件是否存在于某个路径中,如果存在则使用它,如果不存在则下载它但我觉得必须有更好的方法来进行缓存。我愿意接受任何和所有的建议。
江户川乱折腾
神不在的星期二
相关分类