Como configurar o REPL do Scala para o Snowpark Scala

Este tópico explica como configurar o REPL do Scala para o Snowpark.

Neste tópico:

Instalando o REPL do Scala

O REPL do Scala (loop de leitura-avaliação-impressão) é fornecido com a ferramenta de compilação do Scala. Para instalar a versão suportada da ferramenta de compilação do Scala, encontre a versão que você planeja usar e siga as instruções de instalação.

Executando o REPL do Scala

Para usar a biblioteca do Snowpark no REPL do Scala:

  1. Se você ainda não o fez, baixe o arquivo da biblioteca do Snowpark e extraia o conteúdo do arquivo.

  2. Inicie o REPL executando o run.sh script do shell fornecido no arquivo:

cd <path>/snowpark-1.10.0
./run.sh

O script run.sh faz o seguinte:

  • Adiciona a biblioteca do Snowpark e dependências ao classpath.

  • Cria um diretório <path>/snowpark-1.10.0/repl_classes/ para as classes geradas pelo REPL do Scala.

  • Pré-carrega o arquivo preload.scala, que importa o pacote com.snowflake.snowpark e o objeto com.snowflake.snowpark.functions.

Se você estiver usando um REPL diferente para o Scala:

  1. Adicione o arquivo JAR da biblioteca do Snowpark e as dependências ao classpath.

    • O arquivo JAR da biblioteca do Snowpark está no diretório de nível superior do arquivo TAR/ZIP extraído.

    • As dependências estão no diretório lib do arquivo TAR/ZIP extraído.

  2. Crie um diretório temporário para as classes geradas pelo REPL e configure o REPL para gerar classes nesse diretório.

Mais tarde, ao definir funções definidas pelo usuário (UDFs) inline, será necessário especificar o diretório para as classes do REPL como uma dependência.

Como verificar a configuração do seu REPL do Scala

Para verificar se você configurou seu projeto para utilizar o Snowpark, execute um exemplo simples do código do Snowpark.

  1. No diretório que contém os arquivos extraídos do .zip / .tar.gz (ou seja, o diretório que contém o script run.sh), crie um arquivo Main.scala contendo o código abaixo:

    import com.snowflake.snowpark._
    import com.snowflake.snowpark.functions._
    
    object Main {
      def main(args: Array[String]): Unit = {
        // Replace the <placeholders> below.
        val configs = Map (
          "URL" -> "https://<account_identifier>.snowflakecomputing.com:443",
          "USER" -> "<user name>",
          "PASSWORD" -> "<password>",
          "ROLE" -> "<role name>",
          "WAREHOUSE" -> "<warehouse name>",
          "DB" -> "<database name>",
          "SCHEMA" -> "<schema name>"
        )
        val session = Session.builder.configs(configs).create
        session.sql("show tables").show()
      }
    }
    
    Copy

    Observe o seguinte:

    • Substitua os <placeholders> por valores que você usa para se conectar ao Snowflake.

    • Como <account_identifier>, especifique seu identificador da conta.

    • Se você preferir usar a autenticação de par de chaves:

      • Substitua PASSWORD por PRIVATE_KEY_FILE, e defina-o como o caminho do seu arquivo de chave privada.

      • Se a chave privada estiver criptografada, você deve definir PRIVATE_KEY_FILE_PWD como a senha de descriptografia da chave privada.

      Como alternativa a definir PRIVATE_KEY_FILE e PRIVATE_KEY_FILE_PWD, você pode definir a propriedade PRIVATEKEY como o valor da cadeia de caracteres da chave privada não criptografada do arquivo de chave privada.

      • Por exemplo, se seu arquivo de chave privada não estiver criptografado, defina a propriedade como o valor da chave no arquivo (sem os cabeçalhos e rodapés -----BEGIN PRIVATE KEY----- e -----END PRIVATE KEY----- e sem as terminações de linha).

      • Observe que se a chave privada estiver criptografada, você deverá descriptografar a chave antes de defini-la como o valor da propriedade PRIVATEKEY.

  2. De dentro do diretório, execute o script run.sh para iniciar o REPL do Scala com as configurações necessárias para a biblioteca do Snowpark:

    ./run.sh
    
    Copy
  3. No sheel do REPL do Scala, digite o seguinte comando para carregar o arquivo de exemplo que você acabou de criar:

    :load Main.scala
    
    Copy
  4. Execute a seguinte instrução para executar o método main da classe que você carregou:

    Main.main(Array[String]())
    
    Copy

    Isso executa o comando SHOW TABLES e imprime as primeiras 10 linhas dos resultados.