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.
- Dataproc Metastore-Dienst an einen Dataproc-Cluster anhängen
Verbindung zu Spark SQL herstellen
Wenn Sie Spark SQL verwenden möchten, stellen Sie über SSH eine Verbindung zum Dataproc-Cluster her, der mit Ihrem Dataproc Metastore-Dienst verknüpft ist. Nachdem Sie eine SSH-Verbindung zum Cluster hergestellt haben, können Sie Spark-Befehle ausführen, um Ihre Metadaten zu verwalten.
Verbindung zu Spark SQL herstellen
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
- 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.
Im Stammverzeichnis des Knotens wird ein Browserfenster mit einer Ausgabe geöffnet, die in etwa so aussieht:
Connected, host fingerprint: ssh-rsa ...
Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
...
example-cluster@cluster-1-m:~$
Führen Sie die folgenden Befehle in der SSH-Sitzung aus, um Hive zu starten und eine Datenbank und 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();
Zeilen 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|
+--------+---------+-------+