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:
Wenn Sie dies noch nicht getan haben, laden Sie die Archivdatei der Snowpark-Bibliothek herunter, und entpacken Sie den Inhalt der Datei.
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 Paketcom.snowflake.snowpark
und das Objektcom.snowflake.snowpark.functions
importiert.
Wenn Sie eine andere REPL für Scala verwenden:
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.
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.
Erstellen Sie in dem Verzeichnis, das die Dateien enthält, die aus der
.zip
/.tar.gz
-Datei (d. h. aus dem Verzeichnis, das dasrun.sh
-Skript enthält), extrahiert wurden, eineMain.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() } }
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
durchPRIVATE_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
undPRIVATE_KEY_FILE_PWD
können Sie für die EigenschaftPRIVATEKEY
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.
Wenn Sie UDFs erstellen möchten:
Richten Sie nicht Ihr
object
ein, um denApp
Trait zu erweitern. Weitere Details dazu finden Sie unter Einschränkungen beim Erstellen von UDFs in einem Objekt mit der Eigenschaft „App Trait“.Richten Sie Ihr
object
nicht so ein, dass eine Klasse oder ein Trait erweitert wird, die/der nicht serialisierbar ist.
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
Geben Sie in der Scala REPL-Shell den folgenden Befehl zum Laden der soeben erstellten Beispieldatei ein:
:load Main.scala
Führen Sie die folgende Anweisung aus, um die Methode
main
der Klasse, die Sie geladen haben, auszuführen:Main.main(Array[String]())
Dies führt den Befehl
SHOW TABLES
aus und gibt die ersten 10 Zeilen der Ergebnisse aus.