

# Programming Spark scripts
<a name="aws-glue-programming"></a>

AWS Glue makes it easy to write or autogenerate extract, transform, and load (ETL) scripts, in addition to testing and running them. This section describes the extensions to Apache Spark that AWS Glue has introduced, and provides examples of how to code and run ETL scripts in Python and Scala.

**Important**  
Different versions of AWS Glue support different versions of Apache Spark. Your custom script must be compatible with the supported Apache Spark version. For information about AWS Glue versions, see the [Glue version job property](add-job.md#glue-version-table).

**Topics**
+ [Tutorial: Writing an AWS Glue for Spark script](aws-glue-programming-intro-tutorial.md)
+ [Program AWS Glue ETL scripts in PySpark](aws-glue-programming-python.md)
+ [Programming AWS Glue ETL scripts in Scala](aws-glue-programming-scala.md)
+ [Features and optimizations for programming AWS Glue for Spark ETL scripts](aws-glue-programming-general.md)