Python 将AWS S3连接到Databricks PySpark

Python 将AWS S3连接到Databricks PySpark,python,amazon-s3,pyspark,databricks,Python,Amazon S3,Pyspark,Databricks,我正在尝试使用databricks pyspark连接并读取s3 bucket中的所有csv文件。当我使用一些我有管理员权限的bucket时,它可以正常工作 data_path = 's3://mydata_path_with_adminaccess/' 但当我尝试连接到某个需要ACCESS\u KEY\u ID和SECRET\u ACCESS\u KEY的存储桶时,它将不起作用,并且访问被拒绝: 我试过: data_path = 's3://mydata_path_without_admin

我正在尝试使用databricks pyspark连接并读取s3 bucket中的所有csv文件。当我使用一些我有管理员权限的bucket时,它可以正常工作

data_path = 's3://mydata_path_with_adminaccess/'
但当我尝试连接到某个需要ACCESS\u KEY\u ID和SECRET\u ACCESS\u KEY的存储桶时,它将不起作用,并且访问被拒绝:

我试过:

data_path = 's3://mydata_path_without_adminaccess/'

AWS_ACCESS_KEY_ID='my key'
AWS_SECRET_ACCESS_KEY='my key'
以及:

data\u path=='s3://:@mydata\u path\u不具有访问权限

我不确定您是否尝试过使用机密和密钥将存储桶安装到databricks中,但值得一试:

以下是相同的代码:

ACCESS_KEY = dbutils.secrets.get(scope = "aws", key = "aws-access-key")
SECRET_KEY = dbutils.secrets.get(scope = "aws", key = "aws-secret-key")
ENCODED_SECRET_KEY = SECRET_KEY.replace("/", "%2F")
AWS_BUCKET_NAME = "<aws-bucket-name>"
MOUNT_NAME = "<mount-name>"

dbutils.fs.mount("s3a://%s:%s@%s" % (ACCESS_KEY, ENCODED_SECRET_KEY, AWS_BUCKET_NAME), "/mnt/%s" % MOUNT_NAME)
display(dbutils.fs.ls("/mnt/%s" % MOUNT_NAME))
附加参考:


希望它能有所帮助。

我不确定您是否尝试过使用机密和密钥将存储桶安装到databricks中,但值得一试:

以下是相同的代码:

ACCESS_KEY = dbutils.secrets.get(scope = "aws", key = "aws-access-key")
SECRET_KEY = dbutils.secrets.get(scope = "aws", key = "aws-secret-key")
ENCODED_SECRET_KEY = SECRET_KEY.replace("/", "%2F")
AWS_BUCKET_NAME = "<aws-bucket-name>"
MOUNT_NAME = "<mount-name>"

dbutils.fs.mount("s3a://%s:%s@%s" % (ACCESS_KEY, ENCODED_SECRET_KEY, AWS_BUCKET_NAME), "/mnt/%s" % MOUNT_NAME)
display(dbutils.fs.ls("/mnt/%s" % MOUNT_NAME))
附加参考:


希望有帮助。

谢谢。我也尝试过安装,但出现了错误“Secret不存在于scope:aws和key中”。而我可以用这个scret键连接我的python会话!谢谢我也尝试过安装,但出现了错误“Secret不存在于scope:aws和key中”。而我可以用这个scret键连接我的python会话!
df = spark.read.text("/mnt/%s/...." % MOUNT_NAME)