Glue中create_dynamic_frame_from_options的format参数能否仅加载JSON文件?
如何在AWS Glue中仅加载S3路径下的JSON文件?
是的,format 参数是实现该需求的一部分,但仅设置 format="json" 还不够——它主要用于指定文件的解析格式,不会自动过滤不同后缀的文件。要精准只加载JSON文件,需要配合connection_options中的文件过滤规则。
根据AWS Glue官方文档描述:
format- 格式规范(可选)。用于支持多种格式的Amazon S3或AWS Glue连接。
你可以通过在connection_options中添加正则过滤规则,结合format="json"来实现需求,示例代码如下:
raw_data_input_path = "s3a://{}/logs/application_id={}/component_id={}/".format(s3BucketName, application_id, component_id) df = glueContext.create_dynamic_frame_from_options( connection_type="s3", connection_options={ "paths": [raw_data_input_path], "recurse": True, # 方式1:排除所有TXT文件 "exclusions": [".*\\.txt$"] # 方式2:仅包含JSON文件(二选一即可) # "include": [".*\\.json$"] }, format="json", transformation_ctx=dbInstance )
说明:
exclusions用正则表达式匹配需要排除的文件(这里匹配所有.txt后缀的文件)include则是明确指定只加载匹配的文件(这里匹配所有.json后缀的文件)format="json"确保加载的文件会以JSON格式解析,避免格式不兼容问题
内容的提问来源于stack exchange,提问作者Shivam Anand
相关产品推荐
相关产品推荐

