Apache spark 如何获取Spark df.write创建的文件?

Apache spark 如何获取Spark df.write创建的文件?,apache-spark,pyspark,parquet,amazon-emr,Apache Spark,Pyspark,Parquet,Amazon Emr,我需要捕获作为df.write.parquet(“s3://bkt/folder”,mode=“append”)命令的结果创建的拼花文件 我正在AWS EMR pyspark上运行此程序 我可以使用awswrangler通过wr.s3.to_parquet()实现这一点,但这并不真正适合我的EMR spark用例 有这样的功能吗 我想要spark编写的s3://bkt/文件夹中的文件列表 Thx all如果您想要spark写入特定S3路径的文件列表,可以使用以下方法之一: 使用input_fil

我需要捕获作为
df.write.parquet(“s3://bkt/folder”,mode=“append”)
命令的结果创建的拼花文件

我正在AWS EMR pyspark上运行此程序

我可以使用awswrangler通过
wr.s3.to_parquet()
实现这一点,但这并不真正适合我的EMR spark用例

有这样的功能吗

我想要spark编写的s3://bkt/文件夹中的文件列表


Thx all

如果您想要spark写入特定S3路径的文件列表,可以使用以下方法之一:

使用input_file_name,该名称将给出记录源文件路径,并通过选择
filename
执行不同的操作:

from  pyspark.sql.functions import input_file_name
df=spark.read.parquet("s3://bkt/folder")
df.withColumn("filename", input_file_name())
或者您可以使用boto3列出文件:

from boto3 import client

conn = client('s3')  # again assumes boto.cfg setup, assume AWS S3
for key in conn.list_objects(Bucket='bucket_name')['Contents']:
    print(key['Key'])

您想要spark编写的s3://bkt/文件夹中的文件列表吗?是的,就是这样。是的,我有一个非常高的延迟系统,有数百万个对象。这正是我想要避免的,必须执行s3列表OK pyspark中的输入文件名方法如何?我已经有了输入文件名,我对输出文件感兴趣。我说的是读取您使用spark编写的数据,然后在您完成MMM编写后输入文件名。我得试试。。。。我很快会回复