【问题标题】:Faster development turnaround time with AWS Glue使用 AWS Glue 加快开发周转时间
【发布时间】:2022-03-28 15:12:15
【问题描述】:

AWS Glue 看起来很有希望,但我在开发周期时间方面遇到了挑战。如果我通过 AWS 控制台编辑 PySpark 脚本,即使在最小的测试数据集上运行也需要几分钟。如果我必须等待 3-5 分钟才能查看我是否在 glueContext 上调用了正确的方法或了解特定的 DynamicFrame 行为,这对快速迭代来说是一项挑战。

哪些技术可以让我更快地迭代?

我想我可以在本地开发 Spark 代码,并将其部署到 Glue 作为执行框架。但是如果我需要使用特定于 Glue 的扩展来测试代码,我就卡住了。

【问题讨论】:

    标签: amazon-web-services apache-spark aws-glue


    【解决方案1】:

    对于开发和测试脚本,Glue 具有Development Endpoints,您可以将其与安装在local machineAmazon EC2 instance 上的Zeppelin 等笔记本一起使用(其他选项是“REPL Shell”和“PyCharm Professional”)。

    you pay for it even if it's idling 以来完成测试后,请不要忘记删除端点。

    【讨论】:

    • 谢谢,这正是我想要的。
    【解决方案2】:

    我将 pyspark 代码保存在单独的类文件中,并将代码粘合在另一个文件中。我们仅使用胶水来读取和写入数据。我们在本地机器上使用 pytest 进行测试驱动开发。不需要开发端点或 zeppelin。一旦在 pyspark 中修复了所有语法或业务逻辑特定的错误,就可以使用胶水完成端到端测试。我们还编写了 shell 脚本,它将最新代码上传到运行胶水作业的 S3 存储桶。

    1. https://github.com/fatangare/aws-glue-deploy-utility
    2. https://github.com/fatangare/aws-python-shell-deploy

    【讨论】:

    • 是的,这就是我要去的地方 - 这将缩短您可以在本地测试的代码的周期时间,但您将无法在本地运行任何特定于 Glue 的代码。
    猜你喜欢
    • 2011-05-25
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2019-03-17
    • 1970-01-01
    相关资源
    最近更新 更多