在不使用boto3的情况下将文件(python)从databricks写入S3?

问题描述 投票:0回答:1

我有 AWS 的访问密钥和安全密钥,但我想将文件写入 S3 存储桶中,而不用在 python 代码中暴露我的访问密钥和安全密钥。

python-3.x amazon-web-services amazon-s3 databricks
1个回答
0
投票

在 Databricks 中,您可以定义 外部位置 | AWS 上的 Databricks:

外部位置是一个安全对象,它将存储路径与授权访问该路径的存储凭证相结合。

基本上,您提供到 Databricks 的 S3 路径并为其指定 IAM 角色。然后,只需通过引用即可通过 SQL/Spark 访问 S3 存储桶,无需提供凭据,也无需使用 boto3。

例如:

select * from read_files('s3://bucket-name/folder/')

您还可以创建卷 | AWS 上的 Databricks:

卷是 Unity Catalog 对象,表示云对象存储位置中的逻辑存储卷。卷提供访问、存储、管理和组织文件的功能。

这为 S3 存储桶提供了类似磁盘的接口,同样使用存储的凭据。然后您的代码可以像这样访问该卷:

SELECT * FROM csv.`/Volumes/mycatalog/myschema/myexternalvolume/sample.csv`

如果您从 Python 读取/写入文件,则卷可以让您直接访问 S3 存储桶,而无需使用 boto3。您只需引用卷路径(如上所示),就像它是本地磁盘一样。

© www.soinside.com 2019 - 2024. All rights reserved.