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编写后输入文件名。我得试试。。。。我很快会回复