

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS Glue esempi utilizzando AWS CLI
<a name="cli_glue_code_examples"></a>

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface with AWS Glue.

Le *azioni* sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

**Topics**
+ [Azioni](#actions)

## Azioni
<a name="actions"></a>

### `batch-stop-job-run`
<a name="glue_BatchStopJobRun_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`batch-stop-job-run`.

**AWS CLI**  
**Come arrestare le esecuzioni dei processi**  
L’esempio `batch-stop-job-run` seguente avvia un processo.  

```
aws glue batch-stop-job-run \
    --job-name "my-testing-job" \
    --job-run-id jr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3f
```
Output:  

```
{
    "SuccessfulSubmissions": [
        {
            "JobName": "my-testing-job",
            "JobRunId": "jr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3f"
        }
    ],
    "Errors": [],
    "ResponseMetadata": {
        "RequestId": "66bd6b90-01db-44ab-95b9-6aeff0e73d88",
        "HTTPStatusCode": 200,
        "HTTPHeaders": {
            "date": "Fri, 16 Oct 2020 20:54:51 GMT",
            "content-type": "application/x-amz-json-1.1",
            "content-length": "148",
            "connection": "keep-alive",
            "x-amzn-requestid": "66bd6b90-01db-44ab-95b9-6aeff0e73d88"
        },
        "RetryAttempts": 0
    }
}
```
Per ulteriori informazioni, consulta [Esecuzioni di processi](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-runs.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sull'API, consulta [BatchStopJobRun AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/batch-stop-job-run.html)*Command Reference*. 

### `create-connection`
<a name="glue_CreateConnection_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`create-connection`.

**AWS CLI**  
**Per creare una connessione per gli archivi dati di AWS Glue**  
L'`create-connection`esempio seguente crea una connessione nel AWS Glue Data Catalog che fornisce informazioni di connessione per un data store Kafka.  

```
aws glue create-connection \
    --connection-input '{ \
        "Name":"conn-kafka-custom", \
        "Description":"kafka connection with ssl to custom kafka", \
        "ConnectionType":"KAFKA",  \
        "ConnectionProperties":{  \
            "KAFKA_BOOTSTRAP_SERVERS":"<Kafka-broker-server-url>:<SSL-Port>", \
            "KAFKA_SSL_ENABLED":"true", \
            "KAFKA_CUSTOM_CERT": "s3://bucket/prefix/cert-file.pem" \
        }, \
        "PhysicalConnectionRequirements":{ \
            "SubnetId":"subnet-1234", \
            "SecurityGroupIdList":["sg-1234"], \
            "AvailabilityZone":"us-east-1a"} \
    }' \
    --region us-east-1
    --endpoint https://glue.us-east-1.amazonaws.com
```
Questo comando non produce alcun output.  
Per ulteriori informazioni, vedere [Defining Connections in the AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) nella *AWS Glue Developer Guide*.  
+  Per i dettagli sulle API, consulta [CreateConnection AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/create-connection.html)*Command Reference*. 

### `create-database`
<a name="glue_CreateDatabase_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`create-database`.

**AWS CLI**  
**Come creare un database**  
L'`create-database`esempio seguente crea un database nel AWS Glue Data Catalog.  

```
aws glue create-database \
    --database-input "{\"Name\":\"tempdb\"}" \
    --profile my_profile \
    --endpoint https://glue.us-east-1.amazonaws.com
```
Questo comando non produce alcun output.  
Per ulteriori informazioni, consulta [Definizione di un database nel catalogo dati](https://docs.aws.amazon.com/glue/latest/dg/define-database.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sull'API, vedere [CreateDatabase](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/create-database.html)in *AWS CLI Command Reference*. 

### `create-job`
<a name="glue_CreateJob_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`create-job`.

**AWS CLI**  
**Come creare un processo di trasformazione dei dati**  
L’esempio `create-job` seguente crea un processo di streaming che esegue uno script archiviato in S3.  

```
aws glue create-job \
    --name my-testing-job \
    --role AWSGlueServiceRoleDefault \
    --command '{ \
        "Name": "gluestreaming", \
        "ScriptLocation": "s3://amzn-s3-demo-bucket/folder/" \
    }' \
    --region us-east-1 \
    --output json \
    --default-arguments '{ \
        "--job-language":"scala", \
        "--class":"GlueApp" \
    }' \
    --profile my-profile \
    --endpoint https://glue.us-east-1.amazonaws.com
```
Contenuto di `test_script.scala`:  

```
import com.amazonaws.services.glue.ChoiceOption
import com.amazonaws.services.glue.GlueContext
import com.amazonaws.services.glue.MappingSpec
import com.amazonaws.services.glue.ResolveSpec
import com.amazonaws.services.glue.errors.CallSite
import com.amazonaws.services.glue.util.GlueArgParser
import com.amazonaws.services.glue.util.Job
import com.amazonaws.services.glue.util.JsonOptions
import org.apache.spark.SparkContext
import scala.collection.JavaConverters._

object GlueApp {
    def main(sysArgs: Array[String]) {
        val spark: SparkContext = new SparkContext()
        val glueContext: GlueContext = new GlueContext(spark)
        // @params: [JOB_NAME]
        val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray)
        Job.init(args("JOB_NAME"), glueContext, args.asJava)
        // @type: DataSource
        // @args: [database = "tempdb", table_name = "s3-source", transformation_ctx = "datasource0"]
        // @return: datasource0
        // @inputs: []
        val datasource0 = glueContext.getCatalogSource(database = "tempdb", tableName = "s3-source", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame()
        // @type: ApplyMapping
        // @args: [mapping = [("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")], transformation_ctx = "applymapping1"]
        // @return: applymapping1
        // @inputs: [frame = datasource0]
        val applymapping1 = datasource0.applyMapping(mappings = Seq(("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")), caseSensitive = false, transformationContext = "applymapping1")
        // @type: SelectFields
        // @args: [paths = ["sensorid", "currenttemperature", "status"], transformation_ctx = "selectfields2"]
        // @return: selectfields2
        // @inputs: [frame = applymapping1]
        val selectfields2 = applymapping1.selectFields(paths = Seq("sensorid", "currenttemperature", "status"), transformationContext = "selectfields2")
        // @type: ResolveChoice
        // @args: [choice = "MATCH_CATALOG", database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "resolvechoice3"]
        // @return: resolvechoice3
        // @inputs: [frame = selectfields2]
        val resolvechoice3 = selectfields2.resolveChoice(choiceOption = Some(ChoiceOption("MATCH_CATALOG")), database = Some("tempdb"), tableName = Some("my-s3-sink"), transformationContext = "resolvechoice3")
        // @type: DataSink
        // @args: [database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "datasink4"]
        // @return: datasink4
        // @inputs: [frame = resolvechoice3]
        val datasink4 = glueContext.getCatalogSink(database = "tempdb", tableName = "my-s3-sink", redshiftTmpDir = "", transformationContext = "datasink4").writeDynamicFrame(resolvechoice3)
        Job.commit()
    }
}
```
Output:  

```
{
    "Name": "my-testing-job"
}
```
Per ulteriori informazioni, consulta [Authoring Jobs in AWS Glue nella Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job.html) *Developer Guide*.AWS   
+  Per i dettagli sull'API, consulta [CreateJob AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/create-job.html)*Command Reference.* 

### `create-table`
<a name="glue_CreateTable_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`create-table`.

**AWS CLI**  
**Esempio 1: come creare una tabella per un flusso di dati Kinesis**  
L'`create-table`esempio seguente crea una tabella nel AWS Glue Data Catalog che descrive un flusso di dati Kinesis.  

```
aws glue create-table \
    --database-name tempdb \
    --table-input  '{"Name":"test-kinesis-input", "StorageDescriptor":{ \
            "Columns":[ \
                {"Name":"sensorid", "Type":"int"}, \
                {"Name":"currenttemperature", "Type":"int"}, \
                {"Name":"status", "Type":"string"}
            ], \
            "Location":"my-testing-stream", \
            "Parameters":{ \
                "typeOfData":"kinesis","streamName":"my-testing-stream", \
                "kinesisUrl":"https://kinesis.us-east-1.amazonaws.com" \
            }, \
            "SerdeInfo":{ \
                "SerializationLibrary":"org.openx.data.jsonserde.JsonSerDe"} \
        }, \
        "Parameters":{ \
            "classification":"json"} \
        }' \
    --profile my-profile \
    --endpoint https://glue.us-east-1.amazonaws.com
```
Questo comando non produce alcun output.  
Per ulteriori informazioni, consulta [Definizione delle tabelle nel AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html) nella *AWS Glue Developer Guide*.  
**Esempio 2: come creare una tabella per un datastore Kafka**  
L'`create-table`esempio seguente crea una tabella nel AWS Glue Data Catalog che descrive un data store Kafka.  

```
aws glue create-table \
    --database-name tempdb \
    --table-input  '{"Name":"test-kafka-input", "StorageDescriptor":{ \
            "Columns":[ \
                {"Name":"sensorid", "Type":"int"}, \
                {"Name":"currenttemperature", "Type":"int"}, \
                {"Name":"status", "Type":"string"}
            ], \
            "Location":"glue-topic", \
            "Parameters":{ \
                "typeOfData":"kafka","topicName":"glue-topic", \
                "connectionName":"my-kafka-connection"
            }, \
            "SerdeInfo":{ \
                "SerializationLibrary":"org.apache.hadoop.hive.serde2.OpenCSVSerde"} \
        }, \
        "Parameters":{ \
            "separatorChar":","} \
        }' \
    --profile my-profile \
    --endpoint https://glue.us-east-1.amazonaws.com
```
Questo comando non produce alcun output.  
Per ulteriori informazioni, consulta [Definizione delle tabelle nel AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html) nella *AWS Glue Developer Guide*.  
**Esempio 3: Per creare una tabella per un data AWS store S3**  
L'`create-table`esempio seguente crea una tabella nel AWS Glue Data Catalog che descrive un data store AWS Simple Storage Service (AWS S3).  

```
aws glue create-table \
    --database-name tempdb \
    --table-input  '{"Name":"s3-output", "StorageDescriptor":{ \
            "Columns":[ \
                {"Name":"s1", "Type":"string"}, \
                {"Name":"s2", "Type":"int"}, \
                {"Name":"s3", "Type":"string"}
            ], \
            "Location":"s3://bucket-path/", \
            "SerdeInfo":{ \
                "SerializationLibrary":"org.openx.data.jsonserde.JsonSerDe"} \
        }, \
        "Parameters":{ \
            "classification":"json"} \
        }' \
    --profile my-profile \
    --endpoint https://glue.us-east-1.amazonaws.com
```
Questo comando non produce alcun output.  
Per ulteriori informazioni, consulta [Definizione delle tabelle nel AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html) nella *AWS Glue Developer Guide*.  
+  Per i dettagli sulle API, consulta [CreateTable AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/create-table.html)*Command Reference*. 

### `delete-job`
<a name="glue_DeleteJob_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`delete-job`.

**AWS CLI**  
**Come eliminare un processo**  
L’esempio `delete-job` seguente elimina un processo non più necessario.  

```
aws glue delete-job \
    --job-name my-testing-job
```
Output:  

```
{
    "JobName": "my-testing-job"
}
```
Per ulteriori informazioni, consulta [Working with Jobs on the AWS Glue Console](https://docs.aws.amazon.com/glue/latest/dg/console-jobs.html) nella *AWS Glue Developer Guide*.  
+  Per i dettagli sull'API, consulta [DeleteJob AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/delete-job.html)*Command Reference*. 

### `get-databases`
<a name="glue_GetDatabases_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`get-databases`.

**AWS CLI**  
**Per elencare le definizioni di alcuni o tutti i database del AWS Glue Data Catalog**  
L’esempio `get-databases` seguente restituisce informazioni sui database del Catalogo dati.  

```
aws glue get-databases
```
Output:  

```
{
    "DatabaseList": [
        {
            "Name": "default",
            "Description": "Default Hive database",
            "LocationUri": "file:/spark-warehouse",
            "CreateTime": 1602084052.0,
            "CreateTableDefaultPermissions": [
                {
                    "Principal": {
                        "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
                    },
                    "Permissions": [
                        "ALL"
                    ]
                }
            ],
            "CatalogId": "111122223333"
        },
        {
            "Name": "flights-db",
            "CreateTime": 1587072847.0,
            "CreateTableDefaultPermissions": [
                {
                    "Principal": {
                        "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
                    },
                    "Permissions": [
                        "ALL"
                    ]
                }
            ],
            "CatalogId": "111122223333"
        },
        {
            "Name": "legislators",
            "CreateTime": 1601415625.0,
            "CreateTableDefaultPermissions": [
                {
                    "Principal": {
                        "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
                    },
                    "Permissions": [
                        "ALL"
                    ]
                }
            ],
            "CatalogId": "111122223333"
        },
        {
            "Name": "tempdb",
            "CreateTime": 1601498566.0,
            "CreateTableDefaultPermissions": [
                {
                    "Principal": {
                        "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
                    },
                    "Permissions": [
                        "ALL"
                    ]
                }
            ],
            "CatalogId": "111122223333"
        }
    ]
}
```
Per ulteriori informazioni, consulta [Definizione di un database nel catalogo dati](https://docs.aws.amazon.com/glue/latest/dg/define-database.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sulle API, consultate [GetDatabases AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-databases.html)*Command Reference*. 

### `get-job-run`
<a name="glue_GetJobRun_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`get-job-run`.

**AWS CLI**  
**Come ottenere informazioni relative all’esecuzione di un processo**  
L’esempio `get-job-run` seguente recupera le informazioni relative all’esecuzione di un processo.  

```
aws glue get-job-run \
    --job-name "Combine legistators data" \
    --run-id jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e
```
Output:  

```
{
    "JobRun": {
        "Id": "jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e",
        "Attempt": 0,
        "JobName": "Combine legistators data",
        "StartedOn": 1602873931.255,
        "LastModifiedOn": 1602874075.985,
        "CompletedOn": 1602874075.985,
        "JobRunState": "SUCCEEDED",
        "Arguments": {
            "--enable-continuous-cloudwatch-log": "true",
            "--enable-metrics": "",
            "--enable-spark-ui": "true",
            "--job-bookmark-option": "job-bookmark-enable",
            "--spark-event-logs-path": "s3://aws-glue-assets-111122223333-us-east-1/sparkHistoryLogs/"
        },
        "PredecessorRuns": [],
        "AllocatedCapacity": 10,
        "ExecutionTime": 117,
        "Timeout": 2880,
        "MaxCapacity": 10.0,
        "WorkerType": "G.1X",
        "NumberOfWorkers": 10,
        "LogGroupName": "/aws-glue/jobs",
        "GlueVersion": "2.0"
    }
}
```
Per ulteriori informazioni, consulta [Esecuzioni di processi](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-runs.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sull'API, consulta [GetJobRun AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-job-run.html)*Command Reference*. 

### `get-job-runs`
<a name="glue_GetJobRuns_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`get-job-runs`.

**AWS CLI**  
**Come ottenere informazioni su tutte le esecuzioni di processo per un determinato processo**  
L’esempio `get-job-runs` seguente recupera informazioni sulle esecuzioni di processo per un determinato processo.  

```
aws glue get-job-runs \
    --job-name "my-testing-job"
```
Output:  

```
{
    "JobRuns": [
        {
            "Id": "jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e",
            "Attempt": 0,
            "JobName": "my-testing-job",
            "StartedOn": 1602873931.255,
            "LastModifiedOn": 1602874075.985,
            "CompletedOn": 1602874075.985,
            "JobRunState": "SUCCEEDED",
            "Arguments": {
                "--enable-continuous-cloudwatch-log": "true",
                "--enable-metrics": "",
                "--enable-spark-ui": "true",
                "--job-bookmark-option": "job-bookmark-enable",
                "--spark-event-logs-path": "s3://aws-glue-assets-111122223333-us-east-1/sparkHistoryLogs/"
            },
            "PredecessorRuns": [],
            "AllocatedCapacity": 10,
            "ExecutionTime": 117,
            "Timeout": 2880,
            "MaxCapacity": 10.0,
            "WorkerType": "G.1X",
            "NumberOfWorkers": 10,
            "LogGroupName": "/aws-glue/jobs",
            "GlueVersion": "2.0"
        },
        {
            "Id": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_2",
            "Attempt": 2,
            "PreviousRunId": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_1",
            "JobName": "my-testing-job",
            "StartedOn": 1602811168.496,
            "LastModifiedOn": 1602811282.39,
            "CompletedOn": 1602811282.39,
            "JobRunState": "FAILED",
            "ErrorMessage": "An error occurred while calling o122.pyWriteDynamicFrame.
                Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;
                Request ID: 021AAB703DB20A2D;
                S3 Extended Request ID: teZk24Y09TkXzBvMPG502L5VJBhe9DJuWA9/TXtuGOqfByajkfL/Tlqt5JBGdEGpigAqzdMDM/U=)",
            "PredecessorRuns": [],
            "AllocatedCapacity": 10,
            "ExecutionTime": 110,
            "Timeout": 2880,
            "MaxCapacity": 10.0,
            "WorkerType": "G.1X",
            "NumberOfWorkers": 10,
            "LogGroupName": "/aws-glue/jobs",
            "GlueVersion": "2.0"
        },
        {
            "Id": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_1",
            "Attempt": 1,
            "PreviousRunId": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f",
            "JobName": "my-testing-job",
            "StartedOn": 1602811020.518,
            "LastModifiedOn": 1602811138.364,
            "CompletedOn": 1602811138.364,
            "JobRunState": "FAILED",
            "ErrorMessage": "An error occurred while calling o122.pyWriteDynamicFrame.
                 Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;
                 Request ID: 2671D37856AE7ABB;
                 S3 Extended Request ID: RLJCJw20brV+PpC6GpORahyF2fp9flB5SSb2bTGPnUSPVizLXRl1PN3QZldb+v1o9qRVktNYbW8=)",
            "PredecessorRuns": [],
            "AllocatedCapacity": 10,
            "ExecutionTime": 113,
            "Timeout": 2880,
            "MaxCapacity": 10.0,
            "WorkerType": "G.1X",
            "NumberOfWorkers": 10,
            "LogGroupName": "/aws-glue/jobs",
            "GlueVersion": "2.0"
        }
    ]
}
```
Per ulteriori informazioni, consulta [Esecuzioni di processi](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-runs.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sull'API, consulta [GetJobRuns AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-job-runs.html)*Command Reference*. 

### `get-job`
<a name="glue_GetJob_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`get-job`.

**AWS CLI**  
**Come recuperare le informazioni relative a un processo**  
L’esempio `get-job` seguente recupera le informazioni relative a un processo.  

```
aws glue get-job \
    --job-name my-testing-job
```
Output:  

```
{
    "Job": {
        "Name": "my-testing-job",
        "Role": "Glue_DefaultRole",
        "CreatedOn": 1602805698.167,
        "LastModifiedOn": 1602805698.167,
        "ExecutionProperty": {
            "MaxConcurrentRuns": 1
        },
        "Command": {
            "Name": "gluestreaming",
            "ScriptLocation": "s3://janetst-bucket-01/Scripts/test_script.scala",
            "PythonVersion": "2"
        },
        "DefaultArguments": {
            "--class": "GlueApp",
            "--job-language": "scala"
        },
        "MaxRetries": 0,
        "AllocatedCapacity": 10,
        "MaxCapacity": 10.0,
        "GlueVersion": "1.0"
    }
}
```
Per ulteriori informazioni, consulta [Processi](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sull'API, consulta [GetJob AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-job.html)*Command Reference*. 

### `get-plan`
<a name="glue_GetPlan_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`get-plan`.

**AWS CLI**  
**Come ottenere il codice generato per mappare i dati dalle tabelle di origine alle tabelle di destinazione**  
Il comando `get-plan` seguente recupera il codice generato per mappare le colonne dall’origine dati alla destinazione dei dati.  

```
aws glue get-plan --mapping '[ \
    { \
        "SourcePath":"sensorid", \
        "SourceTable":"anything", \
        "SourceType":"int", \
        "TargetPath":"sensorid", \
        "TargetTable":"anything", \
        "TargetType":"int" \
    }, \
    { \
        "SourcePath":"currenttemperature", \
        "SourceTable":"anything", \
        "SourceType":"int", \
        "TargetPath":"currenttemperature", \
        "TargetTable":"anything", \
        "TargetType":"int" \
    }, \
    { \
        "SourcePath":"status", \
        "SourceTable":"anything", \
        "SourceType":"string", \
        "TargetPath":"status", \
        "TargetTable":"anything", \
        "TargetType":"string" \
    }]' \
    --source '{ \
        "DatabaseName":"tempdb", \
        "TableName":"s3-source" \
    }' \
    --sinks '[ \
        { \
            "DatabaseName":"tempdb", \
            "TableName":"my-s3-sink" \
        }]'
    --language "scala"
    --endpoint https://glue.us-east-1.amazonaws.com
    --output "text"
```
Output:  

```
import com.amazonaws.services.glue.ChoiceOption
import com.amazonaws.services.glue.GlueContext
import com.amazonaws.services.glue.MappingSpec
import com.amazonaws.services.glue.ResolveSpec
import com.amazonaws.services.glue.errors.CallSite
import com.amazonaws.services.glue.util.GlueArgParser
import com.amazonaws.services.glue.util.Job
import com.amazonaws.services.glue.util.JsonOptions
import org.apache.spark.SparkContext
import scala.collection.JavaConverters._

object GlueApp {
  def main(sysArgs: Array[String]) {
    val spark: SparkContext = new SparkContext()
    val glueContext: GlueContext = new GlueContext(spark)
    // @params: [JOB_NAME]
    val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray)
    Job.init(args("JOB_NAME"), glueContext, args.asJava)
    // @type: DataSource
    // @args: [database = "tempdb", table_name = "s3-source", transformation_ctx = "datasource0"]
    // @return: datasource0
    // @inputs: []
    val datasource0 = glueContext.getCatalogSource(database = "tempdb", tableName = "s3-source", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame()
    // @type: ApplyMapping
    // @args: [mapping = [("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")], transformation_ctx = "applymapping1"]
    // @return: applymapping1
    // @inputs: [frame = datasource0]
    val applymapping1 = datasource0.applyMapping(mappings = Seq(("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")), caseSensitive = false, transformationContext = "applymapping1")
    // @type: SelectFields
    // @args: [paths = ["sensorid", "currenttemperature", "status"], transformation_ctx = "selectfields2"]
    // @return: selectfields2
    // @inputs: [frame = applymapping1]
    val selectfields2 = applymapping1.selectFields(paths = Seq("sensorid", "currenttemperature", "status"), transformationContext = "selectfields2")
    // @type: ResolveChoice
    // @args: [choice = "MATCH_CATALOG", database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "resolvechoice3"]
    // @return: resolvechoice3
    // @inputs: [frame = selectfields2]
    val resolvechoice3 = selectfields2.resolveChoice(choiceOption = Some(ChoiceOption("MATCH_CATALOG")), database = Some("tempdb"), tableName = Some("my-s3-sink"), transformationContext = "resolvechoice3")
    // @type: DataSink
    // @args: [database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "datasink4"]
    // @return: datasink4
    // @inputs: [frame = resolvechoice3]
    val datasink4 = glueContext.getCatalogSink(database = "tempdb", tableName = "my-s3-sink", redshiftTmpDir = "", transformationContext = "datasink4").writeDynamicFrame(resolvechoice3)
    Job.commit()
  }
}
```
Per ulteriori informazioni, consulta [Modifica degli script in AWS Glue nella Glue](https://docs.aws.amazon.com/glue/latest/dg/edit-script.html) *Developer Guide*.AWS   
+  Per i dettagli sulle API, consulta [GetPlan AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-plan.html)*Command Reference.* 

### `get-tables`
<a name="glue_GetTables_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`get-tables`.

**AWS CLI**  
**Come elencare le definizioni di alcune o tutte le tabelle del database specificato**  
L’esempio `get-tables` seguente restituisce le informazioni relative alle tabelle del database specificato.  

```
aws glue get-tables --database-name 'tempdb'
```
Output:  

```
{
    "TableList": [
        {
            "Name": "my-s3-sink",
            "DatabaseName": "tempdb",
            "CreateTime": 1602730539.0,
            "UpdateTime": 1602730539.0,
            "Retention": 0,
            "StorageDescriptor": {
                "Columns": [
                    {
                        "Name": "sensorid",
                        "Type": "int"
                    },
                    {
                        "Name": "currenttemperature",
                        "Type": "int"
                    },
                    {
                        "Name": "status",
                        "Type": "string"
                    }
                ],
                "Location": "s3://janetst-bucket-01/test-s3-output/",
                "Compressed": false,
                "NumberOfBuckets": 0,
                "SerdeInfo": {
                    "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe"
                },
                "SortColumns": [],
                "StoredAsSubDirectories": false
            },
            "Parameters": {
                "classification": "json"
            },
            "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN",
            "IsRegisteredWithLakeFormation": false,
            "CatalogId": "007436865787"
        },
        {
            "Name": "s3-source",
            "DatabaseName": "tempdb",
            "CreateTime": 1602730658.0,
            "UpdateTime": 1602730658.0,
            "Retention": 0,
            "StorageDescriptor": {
                "Columns": [
                    {
                        "Name": "sensorid",
                        "Type": "int"
                    },
                    {
                        "Name": "currenttemperature",
                        "Type": "int"
                    },
                    {
                        "Name": "status",
                        "Type": "string"
                    }
                ],
                "Location": "s3://janetst-bucket-01/",
                "Compressed": false,
                "NumberOfBuckets": 0,
                "SortColumns": [],
                "StoredAsSubDirectories": false
            },
            "Parameters": {
                "classification": "json"
            },
            "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN",
            "IsRegisteredWithLakeFormation": false,
            "CatalogId": "007436865787"
        },
        {
            "Name": "test-kinesis-input",
            "DatabaseName": "tempdb",
            "CreateTime": 1601507001.0,
            "UpdateTime": 1601507001.0,
            "Retention": 0,
            "StorageDescriptor": {
                "Columns": [
                    {
                        "Name": "sensorid",
                        "Type": "int"
                    },
                    {
                        "Name": "currenttemperature",
                        "Type": "int"
                    },
                    {
                        "Name": "status",
                        "Type": "string"
                    }
                ],
                "Location": "my-testing-stream",
                "Compressed": false,
                "NumberOfBuckets": 0,
                "SerdeInfo": {
                    "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe"
                },
                "SortColumns": [],
                "Parameters": {
                    "kinesisUrl": "https://kinesis.us-east-1.amazonaws.com",
                    "streamName": "my-testing-stream",
                    "typeOfData": "kinesis"
                },
                "StoredAsSubDirectories": false
            },
            "Parameters": {
                "classification": "json"
            },
            "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN",
            "IsRegisteredWithLakeFormation": false,
            "CatalogId": "007436865787"
        }
    ]
}
```
Per ulteriori informazioni, consulta [Definizione delle tabelle nel AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html) nella *AWS Glue Developer Guide*.  
+  Per i dettagli sulle API, consulta [GetTables AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/get-tables.html)*Command Reference*. 

### `start-crawler`
<a name="glue_StartCrawler_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`start-crawler`.

**AWS CLI**  
**Come avviare un crawler**  
L’esempio `start-crawler` seguente avvia un crawler.  

```
aws glue start-crawler --name my-crawler
```
Output:  

```
None
```
Per ulteriori informazioni, consulta [Definizione di crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sull'API, consulta [StartCrawler AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/start-crawler.html)*Command Reference*. 

### `start-job-run`
<a name="glue_StartJobRun_cli_topic"></a>

Il seguente esempio di codice mostra come utilizzare`start-job-run`.

**AWS CLI**  
**Come avviare l’esecuzione di un processo**  
L’esempio `start-job-run` seguente avvia un processo.  

```
aws glue start-job-run \
    --job-name my-job
```
Output:  

```
{
    "JobRunId": "jr_22208b1f44eb5376a60569d4b21dd20fcb8621e1a366b4e7b2494af764b82ded"
}
```
Per ulteriori informazioni, consulta [Creazione di processi](https://docs.aws.amazon.com/glue/latest/dg/author-job.html) nella *Guida per gli sviluppatori di AWS Glue*.  
+  Per i dettagli sull'API, consulta [StartJobRun AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/glue/start-job-run.html)*Command Reference*. 