我在S3存储桶中有一个压缩的gzip文件 . 这些文件将由客户端每天上传到S3存储桶 . 未压缩时的gzip将包含CSV格式的10个文件,但仅具有相同的模式 . 我需要解压缩gzip文件,并使用Glue-> Data crawler,需要在使用dev运行ETL脚本之前创建模式 . endpoints .
胶是否能够解压缩zip文件并创建数据目录 . 或者我们可以直接在python ETL脚本中使用的任何胶水库?或者我应该选择Lambda /任何其他实用程序,以便在上传zip文件后,我运行一个实用程序来解压缩并提供作为Glue的输入?
感谢任何回复 .
2 回答
胶水可以做减压 . 但它不是最佳的 . 由于gzip格式不可拆分(这意味着只有一个执行程序可以使用它) . 有关更多信息here .
您可以尝试通过lambda解压缩并为新文件夹调用glue crawler .
使用
gluecontext.create_dynamic_frame.from_options
并在连接选项中提及压缩类型 . 类似地,在写入s3时也可以压缩输出 . 以下代码段适用于bzip
,请将格式更改为gz|gzip
并尝试 .我在胶水控制台的UI中尝试了
Target Location
,并发现在将dynamic_frames写入s3时支持bzip和gzip,并对从s3读取压缩文件而生成的代码进行了更改 . 在文档中,它不是直接可用的 .不确定效率 . 它需要大约180秒
execution time
才能读取,映射转换,更改为数据帧并返回动态帧,以获得bzip格式的400mb压缩csv文件 . 请注意execution time
与控制台中显示的start_time and end_time
不同 .