Auf dieser Seite finden Sie ein Beispiel für die Verwendung von Spark SQL mit einem Dataproc Metastore-Dienst. 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 eine SSH-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 ähnlich der folgenden geöffnet:
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 Tabelle zu erstellen:
- Starten Sie die Spark-Shell. - spark-shell
- Erstellen Sie eine Datenbank namens - myDB.- spark.sql("create database myDB");
- Verwenden Sie die Datenbank, die Sie erstellt haben. - 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 - myDatabaseauf.- spark.sql("show tables").show();
- Tabellenzeilen in der von Ihnen erstellten Tabelle anzeigen - desc myTable;
Wenn Sie diese Befehle ausführen, wird eine Ausgabe ähnlich der folgenden angezeigt:
$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|
+--------+---------+-------+