

# Editar ou carregar um script de trabalho
<a name="edit-nodes-script"></a>

Use o editor visual do AWS Glue Studio para editar o script de trabalho ou carregar seu próprio script.

É possível usar o editor visual para editar os nós do trabalho somente quando os trabalhos foram criados com o AWS Glue Studio. Se o trabalho foi criado usando o console do AWS Glue, por meio de comandos de API, ou com a command line interface (CLI), você pode usar o editor de scripts no AWS Glue Studio para editar o script de trabalho, os parâmetros e a programação. Você também pode editar o script para um trabalho criado no AWS Glue Studio convertendo o trabalho para o modo somente script.

**Para editar o script de trabalho ou carregar seu próprio script**

1. Se estiver criando um novo trabalho, na página **Jobs** (Trabalhos), escolha a opção **Spark script editor** (Editor de scripts do Spark) para criar um trabalho do Spark ou escolha **Pythin Shell script editor** (Editor de scripts de shell do Python) para criar um trabalho de shell do Python. Você pode escrever um novo script ou carregar um existente. Se escolher **Spark script editor** (Editor de scripts do Spark), você pode escrever ou carregar um script em Scala ou Python. Se escolher **Python Shell script editor** (Editor de scripts de shell do Python), você só pode escrever ou carregar um script em Python.

   Depois de escolher a opção para criar um novo trabalho, na seção **Options** (Opções) que aparece, você pode optar por iniciar com um script inicial (**Create a new script with boilerplate code** [Criar um novo script com o código clichê]) ou pode carregar um arquivo local para usar como script de trabalho.

   Se escolher **Spark script editor** (Editor de scripts do Spark), poderá carregar arquivos de script em Scala ou Python. Os scripts em Scala devem ter a extensão de arquivo `.scala`. Os scripts em Python devem ser reconhecidos como arquivos do tipo Python. Se escolher **Python Shell script editor** (Editor de scripts de shell do Python), só poderá carregar arquivos de script em Python.

   Quando terminar de fazer suas escolhas, selecione **Create** (Criar) para criar o trabalho e abrir o editor visual.

1. Vá para o editor de trabalho visual para o trabalho novo ou salvo e escolha a guia **Script**.

1. Se você não tiver criado um novo trabalho usando uma das opções do editor de scripts e jamais tiver editado o script para um trabalho existente, a guia **Script** exibe o cabeçalho **Script (Locked)** (Script [bloqueado]). Isso significa que o editor de scripts está em modo somente leitura. Escolha **Edit script** (Editar script) para desbloquear o script para edição.

   Para tornar o script editável, o AWS Glue Studio converte seu trabalho de um trabalho visual para um trabalho somente de script. Se você desbloquear o script para edição, não poderá mais usar o editor visual para esse trabalho depois de salvá-lo.

   Na janela de confirmação, escolha **Confirm** (Confirmar) para continuar ou **Cancel** (Cancelar) para manter o trabalho disponível para edição visual.

   Se escolher **Confirm** (Confirme), a guia **Visual** não aparecerá mais no editor. Você pode usar o AWS Glue Studio para modificar o script usando o editor de scripts, modificar os detalhes ou programação do trabalho ou exibir execuções de trabalho.
**nota**  
Até que você salve o trabalho, a conversão para um trabalho somente de script não é permanente. Se você atualizar a página da Web do console ou fechar o trabalho antes de salvá-lo e reabri-lo no editor visual, ainda poderá editar os nós individuais no editor visual.

1. Edite o script, conforme necessário. 

   Quando terminar de editar o script, escolha **Save** (Salvar) para salvar o trabalho e convertê-lo permanentemente de visual para somente script.

1. (Opcional) você pode baixar o script no console do AWS Glue Studio escolhendo o botão **Download** (Baixar) na guia **Script**. Quando você escolhe esse botão, uma nova janela do navegador é aberta, exibindo o script em sua localização no Amazon S3. Os parâmetros de trabalho **Script filename** (Nome de arquivo do script) e **Script path** (Caminho do script) na guia **Job details** (Detalhes do trabalho) determinam o nome e a localização do arquivo de script no Amazon S3.   
![\[\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/job-details-script-location-params-screenshot.png)

   Quando você salva o trabalho, o AWS Glue salva o script de trabalho no local especificado por esses campos. Se você modificar o arquivo de script nesse local no Amazon S3, o AWS Glue Studio carregará o script modificado na próxima vez que você editar o trabalho.

## Criar e editar scripts em Scala no AWS Glue Studio
<a name="edit-job-scala-script"></a>

Quando você escolhe o editor de scripts para criar um trabalho, por padrão, a linguagem de programação de trabalho é definida como `Python 3`. Se você optar por escrever um novo script em vez de carregar um, o AWS Glue Studio iniciará um novo script com texto boilerplate escrito em Python. Se em vez disso, você quiser escrever um script em Scala, deverá primeiro configurar o editor de scripts para usar o Scala.

**nota**  
Se você escolher o Scala como a linguagem de programação para o trabalho e usar o editor visual para projetar seu trabalho, o script de trabalho gerado será escrito em Scala e nenhuma outra ação será necessária.

**Para escrever um novo script em Scala no AWS Glue Studio**

1. Crie um novo trabalho escolhendo a opção **Spark script editor** (Editor de scripts do Spark).

1. Em **Options** (Opções), escolha **Create a new script with boilerplate code** (Criar um novo script com o código clichê).

1. Escolha a guia **Job details** (Detalhes do trabalho) e defina **Language** (Linguagem) como `Scala` (em vez de `Python 3`).
**nota**  
A propriedade **Type** (Tipo) do trabalho é automaticamente definida como `Spark` quando você escolhe a opção **Spark script editor** (Editor de scripts do Spark) para criar um trabalho. 

1. Escolha a guia **Script**.

1. Remova o texto clichê em Python. Você pode substituí-lo com o seguinte texto clichê em Scala.

   ```
   import com.amazonaws.services.glue.{DynamicRecord, GlueContext}
   import org.apache.spark.SparkContext
   import com.amazonaws.services.glue.util.JsonOptions
   import com.amazonaws.services.glue.util.GlueArgParser
   import com.amazonaws.services.glue.util.Job
   
   object MyScript {
     def main(args: Array[String]): Unit = {
       val sc: SparkContext = new SparkContext()
       val glueContext: GlueContext = new GlueContext(sc)
   
       }
   }
   ```

1. Escreva seu script de trabalho em Scala no editor. Adicione mais declarações `import`, conforme necessário.

## Criar e editr trabalhos de shell do Python no AWS Glue Studio
<a name="edit-job-python-shell"></a>

Quando você escolhe o editor de scripts de shell do Python para criar um trabalho, pode carregar um script em Python existente ou escrever um novo. Se você optar por escrever um novo script, o código clichê será adicionado ao novo script de trabalho em Python. 

**Para criar um novo trabalho de shell do Python**  
Consulte as instruções em [Iniciar trabalhos no AWS Glue Studio](edit-nodes-chapter.md#create-jobs-start).

As propriedades de trabalho que são suportadas para trabalhos de shell do Python não são as mesmas que as suportadas para trabalhos do Spark. A lista a seguir descreve as alterações nos parâmetros de trabalho disponíveis para trabalhos de shell do Python na guia **Job details** (Detalhes do trabalho).
+ A propriedade **Type** (Tipo) para o trabalho é automaticamente definida como `Python Shell` e não pode ser alterada. 
+ Em vez de**Language** (Linguagem), há uma propriedade **Python version** (Versão do Python) para o trabalho. No momento, os trabalhos de shell do Python criados no AWS Glue Studio usam o Python 3.6.
+ A propriedade **Glue version** (Versão do Glue) não está disponível, porque não se aplica a trabalhos de shell do Python.
+ Em vez de **Worker type** (Tipo de operador) e **Number of workers** (Número de operadores), uma propriedade **Data processing units** (Unidades de processamento de dados) é mostrada. Essa propriedade de trabalho determina quantas unidades de processamento de dados (DPUs) são consumidas pelo shell do Python ao executar o trabalho.
+ A propriedade **Job bookmark** (Marcador de trabalho) não está disponível, porque não é suportado para trabalhos de shell do Python.
+ Em **Advanced properties** (Propriedades avançadas), as propriedades a seguir não estão disponíveis para trabalhos de shell do Python.
  + **Métricas de trabalho**
  + **Registro em log contínuo**
  + **Spark UI** (IU do Spark) e **Spark UI logs path** (Caminho de logs de IU do Spark)
  + **Dependent jars path** (Caminho de arquivos jar dependentes), no cabeçalho **Libraries** (Bibliotecas)