Etapa 1. Crie um arquivo de configuração JSON - AWS Glue

Etapa 1. Crie um arquivo de configuração JSON

É necessário um arquivo de configuração JSON para definir e descrever sua transformação visual personalizada. O esquema para o arquivo de configuração é como se segue.

Estrutura de arquivo JSON

Campos

  • name: string: (obrigatório) o nome do sistema de transformação usado para identificar as transformações. Siga as mesmas regras de nomenclatura definidas para nomes de variáveis (identificadores) do Python. Especificamente, eles devem começar com uma letra ou um sublinhado e, em seguida, ser compostos inteiramente por letras, dígitos e/ou sublinhados.

  • displayName: string: (opcional) o nome da transformação exibida no editor visual de trabalhos do AWS Glue Studio. Se não for especificado nenhum displayName, o name será usado como o nome da transformação no AWS Glue Studio.

  • description: string: (opcional) a descrição da transformação é exibida no AWS Glue Studio e pode ser pesquisada.

  • functionName: string: (obrigatório) o nome da função do Python é usado para identificar a função a ser chamada no script do Python.

  • path: string: (opcional) o caminho completo do Amazon S3 para o arquivo fonte do Python. Se não for especificado, o AWS Glue usará a correspondência de nomes de arquivo para emparelhar os arquivos .json e .py. Por exemplo, o nome do arquivo JSON, myTransform.json, será emparelhado com o arquivo Python, myTransform.py, no mesmo local do Amazon S3.

  • parameters: Array of TransformParameter object: (opcional) a lista de parâmetros a serem exibidos quando você os configura no editor visual do AWS Glue Studio.

Campos TransformParameter

  • name: string: (obrigatório) o nome do parâmetro que será passado para a função do Python como um argumento nomeado no script do trabalho. Siga as mesmas regras de nomenclatura definidas para nomes de variáveis (identificadores) do Python. Especificamente, eles devem começar com uma letra ou um sublinhado e, em seguida, ser compostos inteiramente por letras, dígitos e/ou sublinhados.

  • displayName: string: (opcional) o nome da transformação exibida no editor visual de trabalhos do AWS Glue Studio. Se não for especificado nenhum displayName, o name será usado como o nome da transformação no AWS Glue Studio.

  • type: string: (obrigatório) o tipo de parâmetro que aceita tipos de dados comuns do Python. Valores válidos: 'str' | 'int' | 'float' | 'list' | 'bool'.

  • isOptional: boolean: (opcional) determina se o parâmetro é opcional. Por padrão, todos os parâmetros são obrigatórios.

  • description: string: (opcional) a descrição é exibida no AWS Glue Studio para ajudar o usuário a configurar o parâmetro de transformação.

  • validationType: string: (opcional) define a forma como esse parâmetro é validado. Atualmente, só aceita expressões regulares. Por padrão, o tipo de validação é definido como RegularExpression.

  • validationRule: string: (opcional) expressão regular usada para validar a entrada do formulário antes do envio, quando validationType está definido como RegularExpression. A sintaxe da expressão regular deve ser compatível com as especificações RegExp do Ecmascript.

  • validationMessage: string: (opcional) a mensagem a ser exibida quando a validação falhar.

  • listOptions: An array of TransformParameterListOption object OU um string ou o valor da string 'coluna': (opcional) opções a serem exibidas no controle de interface de usuário de seleção ou seleção múltipla. Aceitar uma lista de valores separados por vírgula ou um objeto JSON do tipo TransformParameterListOption. Ele também pode preencher dinamicamente a lista de colunas do esquema do nó pai especificando o valor da string “coluna”.

  • listType: string: (opcional) defina os tipos de opções como tipo = “list”. Valores válidos: 'str' | 'int' | 'float' | 'list' | 'bool'. Tipo de parâmetro que aceita tipos de dados comuns do Python.

Campos TransformParameterListOption

  • value: string | int | float | bool: (obrigatório) valor da opção.

  • label: string: (opcional) rótulo da opção exibida na lista suspensa de seleção.

Transformar parâmetros em AWS Glue Studio

Por padrão, os parâmetros são obrigatórios, a menos que sejam marcados como isOptional no arquivo .json. No AWS Glue Studio, os parâmetros são exibidos na guia Transform (Transformar). O exemplo mostra parâmetros definidos pelo usuário, como endereço de e-mail, número de telefone, idade, sexo e país de origem.

A captura de tela mostra uma transformação visual personalizada selecionada e a guia Transform (Transformar) com parâmetros definidos pelo usuário.

Você pode impor algumas validações no AWS Glue Studio usando expressões regulares no arquivo json especificando o parâmetro validationRule e especificando uma mensagem de validação em validationMessage.

"validationRule": "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$", "validationMessage": "Please enter a valid US number"
nota

Como a validação ocorre no navegador, a sintaxe da expressão regular deve ser compatível com as especificações RegExp do Ecmascript. A sintaxe do Python não é compatível com essas expressões regulares.

Adicionar validação evitará que o usuário salve o trabalho com a entrada incorreta do usuário. O AWS Glue Studio exibe a mensagem de validação como a exibida no exemplo:

A captura de tela mostra um parâmetro de transformação visual personalizado com uma mensagem de erro de validação: Please enter a valid email address (Insira um endereço de e-mail válido).

Os parâmetros são exibidos no AWS Glue Studio com base na configuração do parâmetro.

  • Quando o type é qualquer um dos seguintes: str, int ou float, um campo de entrada de texto é exibido. Por exemplo, a exibição de tela mostra campos de entrada para os parâmetros 'Endereço de e-mail' e 'Sua idade'.

    A captura de tela mostra um parâmetro de transformação visual personalizado com campo de entrada de texto.
    A captura de tela mostra um parâmetro de transformação visual personalizado com campo de entrada de texto.
  • Quando type é bool, uma caixa de seleção é exibida.

    A captura de tela mostra um parâmetro de transformação visual personalizado com campo de entrada de texto.
  • Quando type é str e listOptions é fornecida, é exibida uma única lista de seleção.

    A captura de tela mostra um parâmetro de transformação visual personalizado com uma única lista suspensa de seleção.
  • Quando são fornecidos type, list, listOptions e listType, é exibida uma lista de seleção múltipla.

    A captura de tela mostra um parâmetro de transformação visual personalizado com uma lista suspensa.

Exibir um seletor de coluna como parâmetro

Se a configuração exigir que o usuário escolha uma coluna do esquema, você poderá exibir um seletor de coluna para que o usuário não precise digitar o nome da coluna. Ao definir o campo listOptions como “coluna”, o AWS Glue Studio exibe dinamicamente um seletor de coluna com base no esquema de saída do nó pai. O AWS Glue Studio pode exibir um seletor de coluna única ou múltipla.

O exemplo a seguir usa o esquema:

A captura de tela mostra um exemplo de esquema de saída.
Para definir seu parâmetro Transformação visual personalizada para exibir uma única coluna:
  1. No seu arquivo JSON, para o objeto parameters, defina o valor de listOptions como "coluna". Isso permite que o usuário escolha uma coluna em uma lista de seleção no AWS Glue Studio.

    A captura de tela mostra um exemplo de arquivo JSON com o parâmetro listOptions definido como “coluna” e a interface de usuário resultante no AWS Glue Studio.
  2. Você também pode permitir a seleção de várias colunas definindo o parâmetro como:

    • listOptions: "column"

    • type: "list"

    A captura de tela mostra um exemplo de arquivo JSON com o parâmetro listOptions definido como “coluna” e o tipo definido como "lista, e a interface de usuário resultante no AWS Glue Studio.