Aks*_*ale 5 amazon-s3 amazon-web-services apache-spark pyspark databricks
我有一个名为 df 的 databricks 数据框。我想将其作为 csv 文件写入 S3 存储桶。我有 S3 存储桶名称和其他凭据。我检查了此处给出的在线文档https://docs.databricks.com/spark/latest/data-sources/aws/amazon-s3.html#mount-aws-s3,它说使用以下命令
dbutils.fs.mount(s"s3a://$AccessKey:$SecretKey@$AwsBucketName", s"/mnt/$MountName", "sse-s3")
dbutils.fs.put(s"/mnt/$MountName", "<file content>")
Run Code Online (Sandbox Code Playgroud)
但我拥有的是数据框而不是文件。我怎样才能实现它?
我有同样的问题。我找到了两个解决方案
1srt
df
.write \
.format("com.databricks.spark.csv") \
.option("header", "true") \
.save("s3a://{}:{}@{}/{}".format(ACCESS_KEY, SECRET_KEY, BUCKET_NAME, DIRECTORY)))
Run Code Online (Sandbox Code Playgroud)
工作起来就像一个魅力。
第二名
您确实可以安装 S3 Bucket,然后直接向其中写入文件,如下所示:
#### MOUNT AND READ S3 FILES
AWS_BUCKET_NAME = "your-bucket-name"
MOUNT_NAME = "a-directory-name"
dbutils.fs.mount("s3a://%s" % AWS_BUCKET_NAME, "/mnt/%s" % MOUNT_NAME)
display(dbutils.fs.ls("/mnt/%s" % MOUNT_NAME))
#### WRITE FILE
df.write.save('/mnt/{}/{}'.format(MOUNT_NAME, "another-directory-name"), format='csv')
Run Code Online (Sandbox Code Playgroud)
这也将同步到您的 S3 存储桶。
| 归档时间: |
|
| 查看次数: |
18008 次 |
| 最近记录: |