

# Program Amazon Glue ETL scripts in PySpark
<a name="aws-glue-programming-python"></a>

You can find Python code examples and utilities for Amazon Glue in the [Amazon Glue samples repository](https://github.com/awslabs/aws-glue-samples) on the GitHub website.

## Using Python with Amazon Glue
<a name="aws-glue-programming-python-using"></a>

Amazon Glue supports an extension of the PySpark Python dialect for scripting extract, transform, and load (ETL) jobs. This section describes how to use Python in ETL scripts and with the Amazon Glue API.
+ [Setting up to use Python with Amazon Glue](aws-glue-programming-python-setup.md)
+ [Calling Amazon Glue APIs in Python](aws-glue-programming-python-calling.md)
+ [Using Python libraries with Amazon Glue](aws-glue-programming-python-libraries.md)
+ [Amazon Glue Python code samples](aws-glue-programming-python-samples.md)

## Amazon Glue PySpark extensions
<a name="aws-glue-programming-python-extensions-list"></a>

Amazon Glue has created the following extensions to the PySpark Python dialect.
+ [Accessing parameters using `getResolvedOptions`](aws-glue-api-crawler-pyspark-extensions-get-resolved-options.md)
+ [PySpark extension types](aws-glue-api-crawler-pyspark-extensions-types.md)
+ [DynamicFrame class](aws-glue-api-crawler-pyspark-extensions-dynamic-frame.md)
+ [DynamicFrameCollection class](aws-glue-api-crawler-pyspark-extensions-dynamic-frame-collection.md)
+ [DynamicFrameWriter class](aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer.md)
+ [DynamicFrameReader class](aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader.md)
+ [GlueContext class](aws-glue-api-crawler-pyspark-extensions-glue-context.md)

## Amazon Glue PySpark transforms
<a name="aws-glue-programming-python-transforms-list"></a>

Amazon Glue has created the following transform Classes to use in PySpark ETL operations.
+ [GlueTransform base class](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md)
+ [ApplyMapping class](aws-glue-api-crawler-pyspark-transforms-ApplyMapping.md)
+ [DropFields class](aws-glue-api-crawler-pyspark-transforms-DropFields.md)
+ [DropNullFields class](aws-glue-api-crawler-pyspark-transforms-DropNullFields.md)
+ [ErrorsAsDynamicFrame class](aws-glue-api-crawler-pyspark-transforms-ErrorsAsDynamicFrame.md)
+ [FillMissingValues class](aws-glue-api-crawler-pyspark-transforms-fillmissingvalues.md)
+ [Filter class](aws-glue-api-crawler-pyspark-transforms-filter.md)
+ [FindIncrementalMatches class](aws-glue-api-crawler-pyspark-transforms-findincrementalmatches.md)
+ [FindMatches class](aws-glue-api-crawler-pyspark-transforms-findmatches.md)
+ [FlatMap class](aws-glue-api-crawler-pyspark-transforms-flat-map.md)
+ [Join class](aws-glue-api-crawler-pyspark-transforms-join.md)
+ [Map class](aws-glue-api-crawler-pyspark-transforms-map.md)
+ [MapToCollection class](aws-glue-api-crawler-pyspark-transforms-MapToCollection.md)
+ [mergeDynamicFrame](aws-glue-api-crawler-pyspark-extensions-dynamic-frame.md#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-merge)
+ [Relationalize class](aws-glue-api-crawler-pyspark-transforms-Relationalize.md)
+ [RenameField class](aws-glue-api-crawler-pyspark-transforms-RenameField.md)
+ [ResolveChoice class](aws-glue-api-crawler-pyspark-transforms-ResolveChoice.md)
+ [SelectFields class](aws-glue-api-crawler-pyspark-transforms-SelectFields.md)
+ [SelectFromCollection class](aws-glue-api-crawler-pyspark-transforms-SelectFromCollection.md)
+ [Spigot class](aws-glue-api-crawler-pyspark-transforms-spigot.md)
+ [SplitFields class](aws-glue-api-crawler-pyspark-transforms-SplitFields.md)
+ [SplitRows class](aws-glue-api-crawler-pyspark-transforms-SplitRows.md)
+ [Unbox class](aws-glue-api-crawler-pyspark-transforms-Unbox.md)
+ [UnnestFrame class](aws-glue-api-crawler-pyspark-transforms-UnnestFrame.md)