Auf dieser Seite wird ein Beispiel für die Verwendung von Spark SQL mit einem Dataproc Metastore-Dienst gezeigt. In diesem Beispiel starten Sie eine Spark SQL-Sitzung in einem Dataproc-Cluster und führen einige Beispielbefehle aus, um eine Datenbank und eine Tabelle zu erstellen.
Hinweise
- Erstellen Sie einen Dataproc Metastore-Dienst.
- Hängen Sie den Dataproc Metastore-Dienst an einen Dataproc-Cluster an.
Verbindung zu Spark SQL herstellen
Um Spark SQL nutzen zu können, stellen Sie über SSH eine Verbindung zum Dataproc-Cluster her, die mit Ihrem Dataproc Metastore-Dienst verknüpft sind. Nachdem Sie eine SSH-Verbindung zum Cluster hergestellt haben, können Sie Spark-Befehle ausführen, um Ihre Metadaten zu verwalten.
Mit Spark SQL verbinden
- Rufen Sie in der Google Cloud Console die VM Instanzen.
- Klicken Sie in der Liste der VM-Instanzen in der Zeile der Dataproc-VM-Instanz, zu der Sie eine Verbindung herstellen möchten, auf SSH.
In Ihrem Basisverzeichnis auf dem Knoten wird ein Browserfenster mit einer Ausgabe wie folgt geöffnet: zu:
Connected, host fingerprint: ssh-rsa ...
Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
...
example-cluster@cluster-1-m:~$
Führen Sie in der SSH-Sitzung die folgenden Befehle aus, um Hive zu starten und eine Datenbank und eine Tabelle zu erstellen:
Starten Sie die Spark-Shell.
spark-shell
Erstellen Sie eine Datenbank namens
myDB
.spark.sql("create database myDB");
Verwenden Sie die von Ihnen erstellte Datenbank.
spark.sql("use myDB");
Erstellen Sie eine Tabelle mit dem Namen
myTable
.spark.sql("create table bar(id int,name string)");
Listen Sie die Tabellen unter
myDatabase
auf.spark.sql("show tables").show();
Lassen Sie sich die Tabellenzeilen in der von Ihnen erstellten Tabelle anzeigen.
desc myTable;
Die Ausführung dieser Befehle sollte eine Ausgabe wie die folgende liefern:
$spark-shell
scala>spark.sql("create database myDB");
scala>spark.sql("use myTable");
scala>spark.sql("create table myTable(id int,name string)");
scala>spark.sql("show tables").show();
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
| myDB| myTable| false|
+--------+---------+-----------+
+--------+---------+-------+
|col_name|data_type|comment|
+--------+---------+-------+
| id| int| null|
| name| string| null|
+--------+---------+-------+