python - 使用 joblib.Memory 在 AWS S3 中缓存数据

标签 python amazon-web-services amazon-s3 joblib

是否可以在 AWS S3 中使用 joblib.Memory 缓存函数输出,例如将远程链接传递到 cachedir 参数?

例如:

s3_url = 'https://foo.s3..../folder/cache_folder/project_name/joblib'
from joblib import Memory
memory = Memory(s3_url, verbose=0)

@memory.cache
def my_function(x): return x

最佳答案

试试这个库:

https://github.com/aabadie/joblib-s3

来自他们的文档:

获取最新代码

要获取最新代码,请使用 git:

git clone git://github.com/aabadie/joblib-s3.git

安装 joblibs3

只需使用 pip:

$ cd joblib-s3
$ pip install -r requirements.txt .

使用 joblibs3 在 AWS S3 中缓存计算结果

请参阅以下示例:

import numpy as np
from joblib import Memory
from joblibs3 import register_s3_store_backend

if __name__ == '__main__':
    register_s3_store_backend()

    # we assume you S3 credentials are stored in ~/.aws/credentials, so no
    # need to pass them to Memory constructor.
    mem = Memory('joblib_cache', backend='s3', verbose=100, compress=True,
                 backend_options=dict(bucket="joblib-example"))

    multiply = mem.cache(np.multiply)
    array1 = np.arange(10000)
    array2 = np.arange(10000)

    result = multiply(array1, array2)
    print(result)

关于python - 使用 joblib.Memory 在 AWS S3 中缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58734231/

相关文章:

python - 如何使用 python 检查当前登录计算机的用户是什么?

python - 如何检测 Python 变量是否为函数?

django - Elastic Beanstalk 找不到任何平台

amazon-web-services - 如何使用AWS API Gateway从URL中剥离参数?

amazon-web-services - AWS IAM - 您可以在一个值中使用多个通配符 (*)

python - S3对象返回八位字节流,但以png格式上传

Python Pytube 播放列表下载进度

amazon-web-services - Jest 和 AWS.DynamoDB.DocumentClient 模拟

amazon-s3 - 带有 Snappy 压缩的 Parquet 格式的 Redshift COPY 命令

python - 即使忽略了 CancelledError,如何取消任务执行?