SQL Server与AWS GLUE Python 3作业的连接

2024-04-19 06:04:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个python作业,该作业使用sqlAlchemy查询SQL Server数据库,但是,当使用带有AWS Glue的外部库时,需要将这些库包装到一个egg文件中。这导致sqlAlchemy包出现问题,因为它使用的pyodbc包不能封装在鸡蛋中,据我所知,它还有其他依赖项

我曾尝试在Python Glue作业中找到一种连接SQL Server数据库的方法,但到目前为止,我能找到的最接近的建议是,我改为编写一个Spark作业,这是不合适的

有没有人有在Python 3粘合作业中连接SQL Server的经验?如果是这样,我可以使用一个代码+包的示例片段吗


Tags: 文件方法aws数据库sqlserversqlalchemyegg
1条回答
网友
1楼 · 发布于 2024-04-19 06:04:04

是的,我实际上通过捆绑依赖项(包括可传递依赖项)完成了类似的工作

请按照以下步骤操作:

1-创建一个脚本,将所有代码和依赖项压缩到zip文件中,并上载到S3:

python3 -m pip install -r requirements.txt  target custom_directory
python3 -m zipapp custom_directory/
mv custom_directory.pyz custom_directory.zip

上传这个拉链,而不是鸡蛋或轮子

2-创建一个驱动程序来执行我们在步骤1中压缩的python源程序

import sys

if len(sys.argv) == 1:
    raise SyntaxError("Please provide a module to load.")
sys.path.append(sys.argv[1])

from your_module import your_function
sys.exit(your_function())

3-然后,您可以使用以下方式提交作业:

spark-submit  py-files custom_directory.zip your_program.py

见:

How can you bundle all your python code into a single zip file?

I can't seem to get py-files on Spark to work

相关问题 更多 >