【发布时间】:2019-10-17 12:55:32
【问题描述】:
我想在使用 AWS Glue 进行 ETL 处理之前验证架构。我试图在 Glue 中做所有事情以避免使用 Airflow 或其他工具。
流程是 S3 原始数据 -> 在 Glue 中抓取 S3 数据 -> 执行架构检查 -> 使用 AWS Glue 的基本 ETL(目前是基本选择 *) -> 输出到 S3 -> 执行即席查询作为检查在使用 EC2 安装的 ETL 软件进一步处理之前。这个想法是,如果一个步骤失败了,我想发送一个通知(电子邮件或其他)失败的地方和位置。
样本数据文件:来自this link的第一个表(OrderDate, region,...)
选项 1:AWS Glue ETL 脚本执行脚本内字段的映射。如果存在无效的字段类型(例如 int 在日期列中),脚本会“失败”并停止吗?我没有在脚本中看到仅在处理之前验证架构的方法。
PySpark 中的示例脚本行:
applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [("orderdate", "string", "orderdate", "date"), ("region", "string", "region", "string"), ("rep", "string", "rep", "string"), ("item", "string", "item", "string"), ("units", "long", "units", "int"), ("unitcost", "double", "unitcost", "double"), ("total", "double", "total", "double")], transformation_ctx = "applymapping1")
选项 2:我正在阅读 Glue Classifiers。我已经建立了一个测试 CSV 分类器。我不确定如何将它应用到我实际抓取的数据中,因为没有选项可以将它们链接在一起。如果分类器失败了,ETL脚本还会运行吗?
样本分类器:Sample Classifier
工作流需要触发器,触发器需要 ETL 脚本,所以我不确定如何添加分类器。我假设在爬行发生时施加了分类器,但目前尚不清楚如何。
【问题讨论】:
标签: amazon-web-services aws-glue