Einrichten der Scala REPL für Snowpark Scala

Unter diesem Thema wird erklärt, wie Sie die Scala REPL für Snowpark einrichten.

Unter diesem Thema:

Installieren der Java REPL

Die Scala REPL (Read-Eval-Print Loop) wird mit dem Scala-Build-Tool bereitgestellt. Um die unterstützte Version des Scala-Build-Tools zu installieren, suchen Sie die Version, die Sie verwenden möchten, und folgen Sie den Installationsanweisungen.

Ausführen der Scala REPL

So verwenden Sie die Snowpark-Bibliothek in der Scala REPL:

  1. Wenn Sie dies noch nicht getan haben, laden Sie die Archivdatei der Snowpark-Bibliothek herunter, und entpacken Sie den Inhalt der Datei.

  2. Starten Sie die REPL, indem Sie das in der Archivdatei enthaltene Shell-Skript run.sh ausführen:

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

Das Skript run.sh führt Folgendes aus:

  • Hinzufügen der Snowpark-Bibliothek und deren Abhängigkeiten zum Klassenpfad

  • Erstellen eines „<Pfad>/snowpark-1.10.0/repl_classes/“-Verzeichnisses für die Klassen, die von der Scala-REPL generiert wurden.

  • Lädt die Datei preload.scala im Voraus, die das Paket com.snowflake.snowpark und das Objekt com.snowflake.snowpark.functions importiert.

Wenn Sie eine andere REPL für Scala verwenden:

  1. Fügen Sie die JAR-Datei der Snowpark-Bibliothek und die Abhängigkeiten zum Klassenpfad hinzu.

    • Die JAR-Datei der Snowpark-Bibliothek befindet sich im obersten Verzeichnis der extrahierten TAR/ZIP-Archivdatei.

    • Die Abhängigkeiten befinden sich im Verzeichnis lib der extrahierten TAR/ZIP-Archivdatei.

  2. Erstellen Sie ein temporäres Verzeichnis für die von der REPL generierten Klassen, und konfigurieren Sie die REPL so, dass Klassen in diesem Verzeichnis generiert werden.

Bei der späteren Definition von benutzerdefinierten Inline-Funktionen (UDFs) müssen Sie das Verzeichnis für die REPL-Klassen als Abhängigkeit angeben.

Überprüfen der Konfiguration Ihrer Scala REPL

Um zu überprüfen, ob Sie Ihr Projekt für die Verwendung von Snowpark konfiguriert haben, führen Sie ein einfaches Beispiel mit Snowpark-Code aus.

  1. Erstellen Sie in dem Verzeichnis, das die Dateien enthält, die aus der .zip/.tar.gz-Datei (d. h. aus dem Verzeichnis, das das run.sh-Skript enthält), extrahiert wurden, eine Main.scala-Datei, die den folgenden Code enthält:

    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

    Beachten Sie Folgendes:

    • Ersetzen Sie die <Platzhalter> durch Werte, die Sie zur Verbindung mit Snowflake verwenden.

    • Geben Sie für <Kontobezeichner> Ihren Kontobezeichner an.

    • Bei Verwendung der Schlüsselpaar-Authentifizierung:

      • Ersetzen Sie PASSWORD durch PRIVATE_KEY_FILE, und geben Sie den Pfad zu Ihrer privaten Schlüsseldatei an.

      • Wenn der private Schlüssel verschlüsselt ist, müssen Sie für PRIVATE_KEY_FILE_PWD die Passphrase zum Entschlüsseln des privaten Schlüssels einstellen.

      Alternativ zur Einstellung von PRIVATE_KEY_FILE und PRIVATE_KEY_FILE_PWD können Sie für die Eigenschaft PRIVATEKEY den Zeichenfolgenwert des unverschlüsselten privaten Schlüssels aus der privaten Schlüsseldatei einstellen.

      • Wenn Ihre private Schlüsseldatei beispielsweise unverschlüsselt ist, setzen Sie diesen Wert auf den Wert des Schlüssels in der Datei (ohne die Kopf- und Fußzeilen -----BEGIN PRIVATE KEY----- und -----END PRIVATE KEY----- und ohne die Zeilenenden).

      • Beachten Sie, dass Sie bei einem verschlüsselten privaten Schlüssel erst den Schlüssel entschlüsseln müssen, bevor Sie ihn als Wert der Eigenschaft PRIVATEKEY festlegen.

  2. Führen Sie das run.sh-Skript innerhalb des Verzeichnisses aus, um die Scala REPL mit den für die Snowpark-Bibliothek erforderlichen Einstellungen zu starten:

    ./run.sh
    
    Copy
  3. Geben Sie in der Scala REPL-Shell den folgenden Befehl zum Laden der soeben erstellten Beispieldatei ein:

    :load Main.scala
    
    Copy
  4. Führen Sie die folgende Anweisung aus, um die Methode main der Klasse, die Sie geladen haben, auszuführen:

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

    Dies führt den Befehl SHOW TABLES aus und gibt die ersten 10 Zeilen der Ergebnisse aus.