Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 使用python将DataRicks dataframe写入S3_Apache Spark_Amazon S3_Pyspark_Databricks - Fatal编程技术网

Apache spark 使用python将DataRicks dataframe写入S3

Apache spark 使用python将DataRicks dataframe写入S3,apache-spark,amazon-s3,pyspark,databricks,Apache Spark,Amazon S3,Pyspark,Databricks,我有一个叫做df的DataRicks数据帧。我想将其作为csv文件写入S3存储桶。我有S3 bucket名称和其他凭据。我检查了这里提供的在线文档,它说要使用以下命令 dbutils.fs.mount(s“s3a://$AccessKey:$SecretKey@$AwsBucketName”,s“/mnt/$MountName”,“sse-s3”) dbutils.fs.put(s”/mnt/$MountName“,“”) 但我拥有的是一个数据帧,而不是一个文件。我怎样才能做到呢 我也有同样的

我有一个叫做df的DataRicks数据帧。我想将其作为csv文件写入S3存储桶。我有S3 bucket名称和其他凭据。我检查了这里提供的在线文档,它说要使用以下命令

dbutils.fs.mount(s“s3a://$AccessKey:$SecretKey@$AwsBucketName”,s“/mnt/$MountName”,“sse-s3”)
dbutils.fs.put(s”/mnt/$MountName“,“”)

但我拥有的是一个数据帧,而不是一个文件。我怎样才能做到呢

我也有同样的问题。我找到了两个解决办法

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存储桶

请尝试
df.write.csv('/mnt/mountname/filename.csv')
或查看更多选项