gpt4 book ai didi

apache-spark - 使用 python 将数据 block 数据帧写入 S3

转载 作者:行者123 更新时间:2023-12-04 15:41:36 24 4
gpt4 key购买 nike

我有一个名为 df 的数据块数据框。我想将它作为 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>")

但是我拥有的是数据框而不是文件。我怎样才能实现它?

最佳答案

我有同样的问题。我找到了两个解决方案

1srt

df
.write \
.format("com.databricks.spark.csv") \
.option("header", "true") \
.save("s3a://{}:{}@{}/{}".format(ACCESS_KEY, SECRET_KEY, BUCKET_NAME, DIRECTORY)))

像魅力一样工作。

第二

您确实可以挂载 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')


这也将同步到您的 S3 存储桶。

关于apache-spark - 使用 python 将数据 block 数据帧写入 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com