将数据从 S3 加载到 dask 数据帧

sha*_*nuo 3 python dask dask-distributed

只有在将文件公开后将“anon”参数更改为 True 时,我才能加载数据。

df = dd.read_csv('s3://mybucket/some-big.csv',  storage_options = {'anon':False})
Run Code Online (Sandbox Code Playgroud)

出于明显的原因,不建议这样做。如何安全地从 S3 加载数据?

mdu*_*ant 5

从 s3 加载数据的后端是 s3fs,它在此处有一个关于凭据的部分,主要指向 boto3 的文档。

简短的回答是,有多种提供 S3 凭证的方法,其中一些是自动的(位于正确位置的文件或环境变量 - 所有工作人员或集群元数据服务必须可以访问)。

或者,您可以直接在通话中提供您的密钥/秘密,但这当然意味着您信任您的执行平台和工作人员之间的沟通

df = dd.read_csv('s3://mybucket/some-big.csv',  storage_options = {'key': mykey, 'secret': mysecret})
Run Code Online (Sandbox Code Playgroud)

storage_options可以在API 文档中找到使用 s3fs 时可以传入的参数集。

一般参考http://docs.dask.org/en/latest/remote-data-services.html