如何从 S3 存储桶中读取最后修改的 csv 文件?
Posted
技术标签:
【中文标题】如何从 S3 存储桶中读取最后修改的 csv 文件?【英文标题】:How to read the last modified csv files from S3 bucket? 【发布时间】:2019-11-04 19:48:46 【问题描述】:我来找你看看你是否有一个专业提示,将 Glue 作业生成的最新 csv 文件加载到 S3 存储桶中以加载到 jupyter notebook。
我使用此命令从 S3 文件夹加载我的 csv。是否可以选择仅选择具有最后修改的 csv 文件的文件?
df = sqlContext.read.csv(
's3://path',
header=True, sep=","
)
在我倾向于将我的动态数据帧转换为经典数据帧以覆盖我的 Glue 作业生成的旧文件之前。
通过生成 DyF 是不可能的
谢谢
【问题讨论】:
【参考方案1】:您可以使用 S3 boto3 api 获取具有最后修改日期的 csv 文件,然后对其进行排序、过滤并将其传递给 Glue 或 Spark 读取 api。
或者,您可以使用 AWS S3 Inventory 并通过 athena 进行查询:https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html
Glue 有 Job Bookmark 的概念,但它是针对新添加的文件而不是修改的文件。
【讨论】:
@Rahul,如果您想添加 sn-p ,请注意list_objects_v2()
的 1000 限制,否则答案将不适用于 1000 多个文件以上是关于如何从 S3 存储桶中读取最后修改的 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 s3 数据从一个 EMR 集群读取到另一个 EMR 集群?
使用 aws.s3 包从 AWS S3 一次读取多个 CSV 文件对象
Pyspark 从 S3 存储桶读取 csv 文件:AnalysisException:路径不存在