### Apache Airflow Provider(s)

amazon

### Versions of Apache Airflow Providers

apache-airflow-providers-amazon==7.1.0

### Apache Airflow version

2.2.2

### Operating System

macOS Ventura 13.1

### Deployment

Docker-Compose

### Deployment details

_No response_

### What happened

When calling GlueJobOperator and passing 
`create_job_kwargs={"Command": {"Name": "pythonshell"}}` I need to specify MaxCapacity and based on the code [here](https://github.com/apache/airflow/blob/main/airflow/providers/amazon/aws/hooks/glue.py#L127) that's equal to _num_of_dpus_ and that parameter is integer as stated [here](https://github.com/apache/airflow/blob/main/airflow/providers/amazon/aws/hooks/glue.py#L68) 
Because I want to use pythonshell, AWS Glue offers to setup ranges between 0.00625 and 1 and that can't be achieved with integer. 
`When you specify a Python shell job (JobCommand.Name="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.`

I was trying to pass _MaxCapacity_ in `create_job_kwargs={"Command": {"Name": "pythonshell"}, "MaxCapacity": 0.0625}` but it throws the error. 

### What you think should happen instead

I think that parameter _num_of_dpus_ should be type double or MaxCapacity should be allowed to setup as double if pythonshell was selected in Command -> Name.

### How to reproduce

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

log_group_prefix = self.conn.get_job_run(JobName=job_name, RunId=run_id)["JobRun"]["LogGroupName"]
        log_group_suffix = FAILURE_LOG_SUFFIX if job_failed else DEFAULT_LOG_SUFFIX
        log_group_name = f"{log_group_prefix}/{log_group_suffix}"
        try:
            if next_token:
                response = log_client.filter_log_events(
                    logGroupName=log_group_name,
                    logStreamNames=[run_id],
                    filterPattern=filter_pattern,
                    nextToken=next_token,
                )
            else:
                response = log_client.filter_log_events(
                    logGroupName=log_group_name,
                    logStreamNames=[run_id],
                    filterPattern=filter_pattern,
                )
            if len(response["events"]):
                messages = "\t".join([event["message"] for event in response["events"]])
                self.log.info("Glue Job Run Logs:\n\t%s", messages)
        except log_client.exceptions.ResourceNotFoundException:
            self.log.warning(
                "No new Glue driver logs found. This might be because there are no new logs, "
                "or might be an error.\nIf the error persists, check the CloudWatch dashboard "
                f"at: https://{self.conn_region_name}.console.aws.amazon.com/cloudwatch/home"
            )
        
        
        return response.get("nextToken") or next_token
    def job_completion(self, job_name: str, run_id: str, verbose: bool = False) -> dict[str, str]: