如何从 s3 存储桶中获取 Pyspark 中带有前缀的文件?
Posted
技术标签:
【中文标题】如何从 s3 存储桶中获取 Pyspark 中带有前缀的文件?【英文标题】:How to get the files with a prefix in Pyspark from s3 bucket? 【发布时间】:2021-06-15 11:14:02 【问题描述】:我的 s3 中有不同的文件。现在我想获取以 cop_
开头的文件。为了实现这一点,我尝试了以下方法:-
source = s3-path
files = [filename for filename in dbutils.fs.ls(source) if filename.startswith('cop_ ')]
print(files)
尝试后出现如下错误:-
AttributeError: 'FileInfo' object has no attribute 'startswith'
S3 文件夹的文件名如下:-
cop_new.csv
public_new.csv
cop_old.csv
public_old.csv
异常输出:-
[cop_new.csv,cop_old.csv]
【问题讨论】:
你能试试filename.name.startswith('cop_ ')
吗?
【参考方案1】:
您在调用 .startswith()
时引用的是 FileInfo
对象,而不是字符串。
文件名是FileInfo
对象的属性,所以filename.name.startswith('cop_ ')
应该可以工作。
【讨论】:
以上是关于如何从 s3 存储桶中获取 Pyspark 中带有前缀的文件?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Pyspark 2.4.4 读取 s3 存储桶中的镶木地板文件
在运行 AWS Glue ETL 作业并命名输出文件名时,有没有办法从 S3 存储桶中读取文件名。 pyspark 是不是提供了一种方法来做到这一点?
如何使用scala和aws-java-sdk从S3存储桶中获取所有S3ObjectSummary?