我正在尝试使用 Django collectstatic将我的script.py文件发送到 AWS S3 。然后 AWS Glue 读取该文件以执行Spark Job。
当我手动上传 script.py 时, AWS Glue 可以正确读取它。 当我使用以下命令将脚本发送到 AWS S3 时, script.py 被打乱了
python3 manage.py collectstatic --noinput
为reference附加AWS Glue编辑脚本的屏幕截图
我尝试将script.py更改为仅具有少量导入和打印,这可以正常工作并且AWS Glue能够读取script.py
然后我尝试添加更多的 print 语句,然后出现混乱。 很难确切地推断出它何时发生混乱,因为有时在 script.py 中添加几个 import 也会发生混乱。
有人面对吗?
观察: Django将文件压缩为898 B,手动上传文件会将文件保留为3KB。尽管下载压缩文件会呈现一个大小为3KB的正确文件。
答案 0 :(得分:0)
找出问题所在。
collectstatic 命令使用
压缩文件Content-Encoding: gzip
大多数浏览器会读取元数据并运行gunzip进行充气并正常显示文件。 AWS Glue 无法读取此类元数据并最终使数据混乱。
解决方案: 需要通过在 collectstatic 命令压缩期间排除 .py 文件来提供AWS Glue未压缩脚本。