有没有办法在Windows中设置awsglue模块以在本地测试Python胶水作业

有没有办法在Windows中设置awsglue模块以在本地测试Python胶水作业,windows,amazon-web-services,apache-spark,pyspark,aws-glue,Windows,Amazon Web Services,Apache Spark,Pyspark,Aws Glue,找到了。glue-1.0仅与Linux操作系统兼容。您可以尝试在windows中安装docker desktop,然后在windows中运行docker容器 如果您需要有关如何在docker上设置glue的帮助,请参阅本文: 更新 介绍Windows上的下列选项 设置容器以使用Jupyter或齐柏林飞艇笔记本 使用PyCharm Professional设置Docker形象 在CLI解释器上运行 我的答案还涉及到Docker的使用,但是使用openjdk:8作为基本映像,并且与另一个答案中

找到了。glue-1.0仅与Linux操作系统兼容。

您可以尝试在windows中安装docker desktop,然后在windows中运行docker容器

如果您需要有关如何在docker上设置glue的帮助,请参阅本文:

更新 介绍Windows上的下列选项

  • 设置容器以使用Jupyter或齐柏林飞艇笔记本
  • 使用PyCharm Professional设置Docker形象
  • 在CLI解释器上运行

我的答案还涉及到Docker的使用,但是使用openjdk:8作为基本映像,并且与另一个答案中的方法不同

注意:某些Docker命令可能需要更改才能在Windows上工作。我没有Windows环境来测试它们

Dockerfile

# Config for Glue-1.0
ENV GLUE_REPO=https://github.com/awslabs/aws-glue-libs.git
ENV SPARK_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-1.0/spark-2.4.3-bin-hadoop2.8.tgz
ENV MAVEN_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-common/apache-maven-3.6.0-bin.tar.gz
ENV PYTHON_BIN=python3

RUN mkdir glue
WORKDIR /glue
RUN git clone -b glue-1.0 $GLUE_REPO
RUN apt-get update && apt-get install awscli zip git tar ${PYTHON_BIN} ${PYTHON_BIN}-pip -y

ADD ${MAVEN_URL} /tmp/maven.tar.gz
ADD ${SPARK_URL} /tmp/spark.tar.gz

RUN tar zxvf /tmp/maven.tar.gz -C ~/ && tar zxvf /tmp/spark.tar.gz -C ~/ && rm -rf /tmp/*
RUN echo 'export SPARK_HOME="$(ls -d /root/*spark*)"; export MAVEN_HOME="$(ls -d /root/*maven*)"; export PATH="$PATH:$MAVEN_HOME/bin:$SPARK_HOME/bin:/glue/bin"' >> ~/.bashrc
ENV PYSPARK_PYTHON "${PYTHON_BIN}"

RUN pip3 install pytest boto3 moto
RUN bash -l -c 'bash ~/.profile && bash /glue/aws-glue-libs/bin/glue-setup.sh'
docker build -t awsglue/dev-1.0 .
建立形象

# Config for Glue-1.0
ENV GLUE_REPO=https://github.com/awslabs/aws-glue-libs.git
ENV SPARK_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-1.0/spark-2.4.3-bin-hadoop2.8.tgz
ENV MAVEN_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-common/apache-maven-3.6.0-bin.tar.gz
ENV PYTHON_BIN=python3

RUN mkdir glue
WORKDIR /glue
RUN git clone -b glue-1.0 $GLUE_REPO
RUN apt-get update && apt-get install awscli zip git tar ${PYTHON_BIN} ${PYTHON_BIN}-pip -y

ADD ${MAVEN_URL} /tmp/maven.tar.gz
ADD ${SPARK_URL} /tmp/spark.tar.gz

RUN tar zxvf /tmp/maven.tar.gz -C ~/ && tar zxvf /tmp/spark.tar.gz -C ~/ && rm -rf /tmp/*
RUN echo 'export SPARK_HOME="$(ls -d /root/*spark*)"; export MAVEN_HOME="$(ls -d /root/*maven*)"; export PATH="$PATH:$MAVEN_HOME/bin:$SPARK_HOME/bin:/glue/bin"' >> ~/.bashrc
ENV PYSPARK_PYTHON "${PYTHON_BIN}"

RUN pip3 install pytest boto3 moto
RUN bash -l -c 'bash ~/.profile && bash /glue/aws-glue-libs/bin/glue-setup.sh'
docker build -t awsglue/dev-1.0 .
创建一个容器

docker run -it --name glue-1.0 awsglue/dev-1.0
我更喜欢将源代码目录装载到容器中,并使容器在单独的终端中运行以提交作业,或者只使用shell。你可以选择适合你的方法。或者,如果要在代码中使用AWS SDK,您可能还需要装载

使用以下命令启动、停止或执行容器

docker start glue-1.0
docker stop glue-1.0
docker exec -it  glue-1.0 /bin/bash
一旦进入,使用下面的开始胶壳

./aws-glue-libs/bin/gluepyspark
或者提交一份工作

./aws-glue-libs/bin/gluesparksubmit src/job_name.py

你试过在windows中设置它吗?你遇到什么问题了吗?