title: How to use extra files for AWS glue job
body: <p>I have an ETL job written in python, which consist of multiple scripts with following directory structure;</p>
  
  <pre><code>my_etl_job
   |
   |--services
   |  |
   |  |-- __init__.py
   |  |-- dynamoDB_service.py
   |
   |-- __init__.py
   |-- main.py
   |-- logger.py
  </code></pre>
  
  <p><code>main.py</code> is the entrypoint script that imports other scripts from above directories. The above code runs perfectly fine on dev-endpoint, after uploading on the ETL cluster created by dev endpoint. Since now I want to run it in production, I want to create a proper glue job for it. But when I compress the whole directory <code>my_etl_job</code> in <code>.zip</code> format, upload it in artifacts s3 bucket, and specify the .zip file location into script location as follows</p>
  
  <pre><code>s3://&lt;bucket_name&gt;/etl_jobs/my_etl_job.zip
  </code></pre>
  
  <p>This is the code I see on glue job UI dashboard;</p>
  
  <pre><code>PK
      ���P__init__.pyUX�'�^"�^A��)PK#7�P  logger.pyUX��^1��^A��)]�Mk�0����a�&amp;v+���A�B���`x����q��} ...AND ALLOT MORE...
  </code></pre>
  
  <p>Seems like the glue job doesn't accepts .zip format ? if yes, then what compression format shall I use ? </p>
  
  <p><strong>UPDATE:</strong> 
  I checked out that glue job has option of taking in extra files <code>Referenced files path</code> where I provided a comma separated list of all paths of the above files, and changed the script_location to refer to only <code>main.py</code> file path. But that also didn't worked. Glue job throws error no module found logger (and I defined this module inside logger.py file)   </p>