Yuv*_*uva 2 amazon-web-services aws-glue
我在 S3 存储桶中有一个压缩的 gzip 文件。客户端每天都会将文件上传到 S3 存储桶。解压缩后的 gzip 将包含 10 个 CSV 格式的文件,但仅具有相同的架构。我需要解压缩 gzip 文件,并使用 Glue->Data crawler,需要在使用 dev 运行 ETL 脚本之前创建一个模式。端点。
胶水能够解压缩 zip 文件并创建数据目录。或者我们可以直接在python ETL脚本中使用的任何可用的胶水库?或者我应该选择 Lambda/任何其他实用程序,以便在上传 zip 文件后立即运行一个实用程序来解压缩并作为输入提供给 Glue?
感谢任何答复。
在连接选项中使用gluecontext.create_dynamic_frame.from_options并提及压缩类型。同样,写入 s3 时也可以压缩输出。以下代码片段适用于bzip,请将格式更改为gz|gzip并尝试。
我尝试了Target Locationglue控制台的UI,发现bzip和gzip支持将dynamic_frames写入s3,并对生成的代码进行了更改以从s3读取压缩文件。在文档中它不是直接可用的。
不确定效率。execution time对于 bzip 格式的 400mb 压缩 csv 文件,大约需要 180 秒的时间来读取、映射转换、更改为数据帧并返回到动态帧。请注意与控制台中显示的execution time不同。start_time and end_time
datasource0 = glueContext.create_dynamic_frame
.from_options('s3',
{
'paths': ['s3://bucketname/folder/filename_20180218_004625.bz2'],
'compression':'bzip'
},
'csv',
{
'separator': ';'
}
)
Run Code Online (Sandbox Code Playgroud)